2

I have a JSP page running in Tomcat that is not rendering properly. Here is what helloworld.jsp looks like:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="cms-taglib" prefix="cms" %>
<html>
  <head>
    <title>${content.title}</title>
  </head>
  <body>
    <cms:mainBar
       dialog="my-page-properties-dialog"
       label="Page Properties"
       adminButtonVisible="true"/>
    <h1>${content.title}</h1>
    <p>Hello Magnolia World !</p>

    Current time: <%= new java.util.Date() %>
    <%-- JSP Comment --%>

  </body>
</html>

and the final output is like this:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="cms-taglib" prefix="cms" %> Hello Magnolia World!

Hello Magnolia World ! Current time: <%= new java.util.Date() %> <%-- JSP Comment --%>

In short, it seems like only the expression ${content.title} is evaluated and rendered fine but everything else like the page directives, other JSP expressions and JSP comments are not.

I'm using a CMS that comes with Tomcat but the JSP templates samples from the distribution seem fine. I suppose it's something wrong from the code I written above.

Update: I've fixed the closed tag for the date expression and the comment. However, the page directives aren't being parsed.

Steve
  • 11,831
  • 14
  • 51
  • 63
  • With the final output, do you mean whatever you see in webbrowser or in the generated source as you see by rightclick, *View Source* in browser? – BalusC Dec 10 '10 at 20:23
  • It's not entirely the same as view source. It's "partially" rendered. The html and p tags are rendered fine. Also the content.title value is evaluated fine. – Steve Dec 10 '10 at 20:42
  • I mean, do you see `<% %>` things in webbrowser or in the HTML source? If in webbrowser, then it means that they are somehow escaped as `<% %>` in HTML source. – BalusC Dec 10 '10 at 20:45
  • Since you accepted an answer which didn't answer your concrete question at all, what was the *actual* problem after all? You're fully eligible to post it as your own answer and accept it (2 days later). – BalusC Dec 10 '10 at 20:56
  • @BalusC: done, I'll accept it 2 days later. Thanks for letting me know the convention here at SO. – Steve Dec 10 '10 at 21:04

4 Answers4

1

I think there are problem with your jsp comment.

It should look like below. Are you not using IDE to develop your jsp? Your IDE should tell you when you have syntax error.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="cms-taglib" prefix="cms" %>
<html>
  <head>
    <title>${content.title}</title>
  </head>
  <body>
    <cms:mainBar
       dialog="my-page-properties-dialog"
       label="Page Properties"
       adminButtonVisible="true"/>
    <h1>${content.title}</h1>
    <p>Hello Magnolia World !</p>

    Current time: <%= new java.util.Date() %>
    <%-- JSP Comment --%>

  </body>
</html>
gigadot
  • 8,879
  • 7
  • 35
  • 51
  • That doesn't explain why the directives (those two lines in top) aren't parsed. – BalusC Dec 10 '10 at 20:05
  • I ran this code without cms taglib (since I don't have it installed) and there are no error at all. Then, I also ran it with cms (even if I don't have it installed). My tomcat raised a org.apache.jasper.JasperException: File "/cms-taglib" not found. Finally, I ran it without closing tags, it also raised exception. I am not sure how can Steve get it to partially rendered. – gigadot Dec 10 '10 at 20:28
1

The java scriplet <%= new java.util.Date() % is also not closed properly (<%= new java.util.Date() %>) plus like gigadot stated, the <%-- JSP Comment --% is not closed properly <%-- JSP Comment --%>.

Regards,

Subodh Joshi
  • 12,717
  • 29
  • 108
  • 202
1

I found the problem. It's a stupid mistake on my end. Even though I fixed the correct JSP syntax and had the jsp extension, I needed to tell the CMS engine to explicitly render that one template as JSP. Thanks everyone for catching my syntax error though. I suppose it's something to watch out for when working with other frameworks.

Steve
  • 11,831
  • 14
  • 51
  • 63
  • 2
    I know this post is 5 years old and I am having the same issue. I understand the issue but not how you solved it. Could you elaborate more? – Mike3355 Aug 27 '15 at 14:46
0

Usually we see the code,displayed in browser when a file is not recognized by the parser,i.e file extension is not added to parser list.

Usually tomcat has this configuration in web.xml under /conf folder.

Also, if you are using some text editor to code, Please ensure you are storing with .jsp extension only and not .jsp.txt, accidentally !

Ratna Dinakar
  • 1,573
  • 13
  • 16