如何在JSP中使用声明标记?

时间:2015-09-23 21:20:06

标签: java jsp

我有一个方法,我拿了一个变量int b = 10&我想打印这个值 在显示方法。我该怎么办?

<%!
int b=10;
public void display()
{
    out.print(b);
}
%>

但它给出了错误,例如“出来无法解决”。

3 个答案:

答案 0 :(得分:4)

Scriptlet在service方法内执行,每次调用此方法来处理某些请求时,都需要创建自己的一组局部变量,以免与{{{}的其他调用发生冲突1}}将处理不同请求的方法。其中一个局部变量是service

由于out负责在类级别声明代码,因此它无法访问<%! ... %>方法的局部变量。

如果您确实需要访问service,可以将其作为参数传递给out方法,如

display

您还可以创建其他方法,而不是负责显示,将返回显示内容,如

public void display(JspWriter out) //javax.servlet.jsp.JspWriter 
{
    out.print(b);
}

您可以在public int getB() { return b; } out<% out.print(getB()); %>

<%=getB()%>的scriptlet中使用它

但是you should avoid scriptlets

答案 1 :(得分:0)

引入了一个带有&lt;%,而不是&lt;%!的scriptlet。此外,还缺少一些信息。这是否在服务器内的JSP文件中运行,例如,Tomcat?

&#34; out&#34;变量应定义为JSP中的标准预定义变量。

答案 2 :(得分:0)

在JSP初始化阶段,无论什么内置声明标记都会被初始化。所以这里隐含的对象“out”还没有。

如果你真的需要在你自己的方法中输出一些东西(在jsp类中)你可以这样做:

<%!
int b=10;
public void display(HttpServletResponse res) {
    try {
        res.getWriter().write(b) ;
    } catch (IOException e) {
        //
    }
}
%>

以及后来的jsp:

<%= display(response) %>