Re: JSP Methods
On Sep 29, 1:49 pm, Lew <l...@lewscanon.com> wrote:
On Sep 29, 3:44 pm, Jim <shakahsha...@gmail.com> wrote:
On Sep 29, 2:40 pm, Ken <k...@kenmcwilliams.com> wrote:
On Sep 29, 11:50 am, markspace <nos...@nowhere.com> wrote:
Ken wrote:
I will strip out the paragraph and print it where ever it occurs
ignoring the method all together, so I am back out needing JspWri=
ter.
Very Ugly!
Why do you need JspWriter? What are you actually trying to do?
Here is an example program:
You're not quite getting what's happening when your JSP is translated
into a .java file. Take a look at the work file to see what happens,
it can be enlightening (in Tomcat, under Linux, the work (.java) file
s/b in someplace like /usr/local/tomcat/work/Catalina/...).
As you noticed, your page is essentially the following, which makes
the output a little less confusing:
<%!
public void printThree(javax.servlet.jsp.JspWriter out)
throws java.io.IOException {
out.print("<p>3</p>");
};/*End printThree*/
public void printTwo(javax.servlet.jsp.JspWriter out)
throws java.io.IOException{
out.print("<p>2</p>");
};/*End printTwo*/
public void printOne(javax.servlet.jsp.JspWriter out)
throws java.io.IOException{
out.print("<p>1</p>");
};/*End printThree*/
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<p>1'st method</p>
<p>2'nd Method</p>
<p>3'rd method</p>
<%
printOne(out);
printTwo(out);
printThree(out);
%>
</body>
</html>
All of this is such fugly JSP code! Yecch.
JSPs are primarily for handling the view component of a web app. You
really shouldn't have any scriptlet in them, much less be messing
around with method definitions.
That you find yourself having to look at the precompiler .java output
is telling. I suggest either using JSTL and EL (they let you write
functions) or skipping JSP and writing the code as a .java-sourced
servlet.
--
Lew
Wow thanks guys... You see I was thinking that I could use
Declarations ( <%! ) in a similar way as Expressions ( <% ).
So you can use expressions this way...
<% if (someexpression) { %>
PRINT A BUNCH OF HTML
<% } /* End If */ %>
So I was trying to include HTML in Declarations the same way. If you
look back, you'll see why I expected the output to be completely
different and why my syntax was so strange, I was under the impression
that the out.print statements were not needed at all just the html
that was sandwiched between.
Lews suggestion of using JSTL or EL seems to be just the ticket. I
have not used either although I have used a little xslt for a couple
projects. I was looking at how to make what was in front of me work
and that is just what outsiders are for... expanding the box (and
quickly at that!). My orbit has been disturbed enough I am off on a
productive trip flying towards whatever my next fallacy will be.
If anyone has a favorite JSTL/EL learning site I'd like to hear it.
I'll probably start down what ever is offered by Sun. Thanks again.