在JSP中的Java方法内将文本打印到网页

时间:2015-04-09 09:44:11

标签: java apache jsp tomcat

我一直在努力在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?

2 个答案:

答案 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();%>

当你在<%%>中写一些东西时,这些标签之间的代码被放在方法中,所以你不能在那个标签内声明函数或类,因为我们不能在方法中有方法或类。

SimilarAlso check

答案 1 :(得分:0)

out变量已经在方法中 - _jspService。因此,如果您要使用out,请使用声明 - out声明另一个将<%!作为参数的方法,然后调用此方法。