Solved

JSP include - unwanted xml attribute value display

Posted on 2004-09-15
13
210 Views
Last Modified: 2013-11-19
Hello,

I have a issue with jsp include. I'm including this servlet which gives output as XML.  This XML output is something like this:

[-------]
   <ServerCpuUsage Status="normal" Value="1" />
- <FanStatus Status="normal">
  <Fan DisplayName="Fan 1" Status="normal">on</Fan>
  </FanStatus>
- <PowerSupplyStatus Status="critical">
  <PowerSupply DisplayName="Power supply 1" Status="critical">off</PowerSupply>
   </PowerSupplyStatus>
[-------]


MY JSP code:

[--------------------]
<jsp:include page="/resource/Document" /> [THIS IS SERVLET WHOSE OUTPUT IS ABOVE]
 <%  
 
         ServletContext context = getServletContext();
         Document doc1 = (Document)context.getAttribute(id+":"+ServletConstants.DOC);  
         TransformerFactory tFactory = TransformerFactory.newInstance();
         InputStream is = context.getResourceAsStream("/stylesheets_new.xsl");
         Transformer transformer = tFactory.newTransformer(new StreamSource(is));
         Source source = new DOMSource(doc1);
         transformer.transform(source, new StreamResult(out));
%>
[--------------------]

When I run my JSP, using stylesheet the output is correct, but I'm getting extra with stuff bcoz of jsp include: Like this:

OUTPUT:
===================
onoff
[correct stylesheet output.....]
===================

I dont want that "onoff" which is attribute value from <fan> and <powersupply> if you can see the XML output.
Is there any way to get rid of this "on" and "off" from attribute <fan> and <powersupply> of auto generated servlet. Do I need to replace jsp include with something else ?? Please help

Regards,
H
0
Comment
Question by:princehyderabad
  • 6
  • 5
13 Comments
 
LVL 35

Expert Comment

by:TimYates
ID: 12068720
can you post your xsl?
0
 

Author Comment

by:princehyderabad
ID: 12068886
XSL is to large and u may get confuse, to make it easy, I hv copied below the xsl part which reflects the above Question. This is the XSL.

<xsl:for-each select="Inventory">

    <xsl:for-each select="ServerCpuUsage">
    <xsl:for-each select="@Value">
    <xsl:value-of select="." /> %
    </xsl:for-each>
    </xsl:for-each>

      <xsl:for-each select="Fan">
      <xsl:value-of select="@DisplayName"/>
     <xsl:value-of select="@Status"/>
     </xsl:for-each>

      <xsl:for-each select="PowerSupply">
      <xsl:value-of select="@DisplayName"/>
     <xsl:value-of select="@Status"/>
     </xsl:for-each>

</xsl:for-each>
0
 

Author Comment

by:princehyderabad
ID: 12068937
Let me tell you XSL is has notthing to do with "onoff" display stuff. Because when I tried my JSP code below, there was no "onoff" extra display. And the stylesheet was same. Its only bcoz of change of JSP code and additing the jsp include.

My Old JSP code which displayed correctly with no extra display of "onoff" ...
<%
   String childUrl = "/resource/Document";
   StringBuffer reqURL = request.getRequestURL();
   String contextURL = reqURL.substring(0,reqURL.lastIndexOf(request.getServletPath()));    
   URL url = new URL(contextURL + childUrl );  
       
   HttpURLConnection conn = (HttpURLConnection)url.openConnection();            
   conn.setDoInput(true);                
   TransformerFactory tFactory = TransformerFactory.newInstance();
   Transformer transformer = tFactory.newTransformer( new StreamSource("stylesheets_new.xsl") );
   transformer.transform(new StreamSource(conn.getInputStream()), new StreamResult(out));
%>
0
Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

 
LVL 35

Expert Comment

by:TimYates
ID: 12073654
Errrr...  the line:

<jsp:include page="/resource/Document" />

will put the words

    onoff

At the top of the page, as the browser will try to render the XML as HTML, so strip out all the tags (as they are not valid HTML tags), and display the results...

If you view the source of the page, the XML will be there (at the top of the page), but in the browser, it will just look like "onoff"

Why do you include an XML document into your JSP?
0
 
LVL 35

Expert Comment

by:TimYates
ID: 12073657
ie:  get rid of the line:

<jsp:include page="/resource/Document" />

:-)
0
 

Author Comment

by:princehyderabad
ID: 12077024
hi TimYates,

Dont you think it would be easy for me to get rid of that include, I hv to include in order to run this line
" Document doc1 = (Document)context.getAttribute(id+":"+ServletConstants.DOC);" which is in JSP code.


0
 
LVL 35

Expert Comment

by:TimYates
ID: 12079313
Is the XML dumped into the page when you view source on the HTML?

what does

<jsp:include page="/resource/Document" />

actually include?
0
 

Author Comment

by:princehyderabad
ID: 12086602
I'll explain in my own terminology.
That include,  includes the Servlet Output which gives XML.
If you dont include <jsp:include page="/resource/Document" />
this will not work as said earlier: " Document doc1 = (Document)context.getAttribute(id+":"+ServletConstants.DOC);"

Now what this doc1 has is, the DOM XML which is produce by include servlet.
Why I need doc1, bcoz transformation need, xml and stylesheet. Stylesheet file name you can see in the code above. And XML is what we getting after including the include tag and in doc1 gettting from ServletContext.

Is there any other way to replace include tag, something like <servlet name="" class=""... ???
0
 

Author Comment

by:princehyderabad
ID: 12104425
I GOT THE ANSWER MYSELF THRU OTHER RESOURCES:

Simply replace <jsp include> code with
<SERVLET NAME="Servlet" CODE="Servlet.class" CODEBASE="url">
</SERVLET>
0
 
LVL 35

Expert Comment

by:TimYates
ID: 12105363
Cool :-)

If you post a link to this Q here: http://www.experts-exchange.com/Community_Support/

You can get this question closed, and your points refunded :-)

Good luck!

Sorry I couldn't help more :-(

Tim
0
 
LVL 35

Expert Comment

by:TimYates
ID: 12107290
Yup, fair enough :-)
0
 
LVL 2

Accepted Solution

by:
Lunchy earned 0 total points
ID: 12148825
Closed, 300 points refunded.
Lunchy
Friendly Neighbourhood Community Support Admin
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Preface In the first article: A Better Website Login System (http://www.experts-exchange.com/A_2902.html) I introduced the EE Collaborative Login System and its intended purpose. In this article I will discuss some of the design consideratio…
Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question