我一直在努力在Java服务器页面上的Java方法中打印文本。以下是我尝试打印Tomcat(V7.0.56)编译器中抛出的文本和错误的一些方法:
<%
class Base {
public void main() {
String Text = "ThisIsText";
out.println(Text);
}
}
%>
错误:无法引用封闭中定义的非最终局部变量out 范围
<%
class Base {
static Text;
public void main() {
String Text = "ThisIsText";
}
out.println(Text);
}
%>
语法错误,插入“Identifier(”以完成MethodHeaderName
<%
class Base {
static Text;
public String text() {
String Text = "NewText";
return Text;
}
}
%>
<%text();%>
对于类型Base_jsp
,方法text()未定义有没有办法直接从JSP scriptlet中的Java方法打印HTML Text?
答案 0 :(得分:1)
使用声明性标记
<%!
class Base {
JspWriter out;
public Base(JspWriter out) {
this.out = out;
}
public void main() {
String Text = "ThisIsText";
try {
out.println(Text);
} catch (Exception e) {
e.printStackTrace();
}
}
}
%>
<%(new Base(out)).main();%>
当你在<%%>
中写一些东西时,这些标签之间的代码被放在方法中,所以你不能在那个标签内声明函数或类,因为我们不能在方法中有方法或类。
答案 1 :(得分:0)
out
变量已经在方法中 - _jspService
。因此,如果您要使用out
,请使用声明 - out
声明另一个将<%!
作为参数的方法,然后调用此方法。