如何从 JSP 块?

我刚开始学习 JSP 技术,却遇到了一堵墙。

*如何从<%!... %> JSP 声明块中的方法输出 HTML?

这行不通:

<%! 
void someOutput() {
    out.println("Some Output");
}
%>
...
<% someOutput(); %>

服务器说没有“out”。

U: 我知道如何重写代码,让此方法返回字符串,但是否有办法在 <%! void () { } 内做到这一点。%> ?虽然这可能不是最佳方法,但仍然很有趣。

您不能在指令中使用 'out'变量(也不能在指令中使用其他任何 "predeclared" scriptlet 变量)。

JSP 页面会被网络服务器翻译成 Java servlet。例如,在 tomcats 中,脚本中的所有内容(以"

评论(4)

我想这应该会有帮助:


...

总之,在视图中添加代码不是个好主意。

评论(0)

您只需将 JspWriter 对象作为参数传递到方法中,即

void someOutput(JspWriter stream)

然后通过

写入器对象是 _jspService 中的一个局部变量,因此需要将其传递到实用程序方法中。这同样适用于所有其他内置引用(如 request、response、session)。

查看发生了什么的一个好方法是使用 Tomcat 作为服务器,并深入到 'work' 目录中查看从你的 'jsp' 页面生成的 '.java' 文件。或者,你也可以在 weblogic 中使用 'weblogic.jspc'页面编译器来查看请求页面时生成的 Java。

评论(0)