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

Däñ*_*rmà 0 java jsp

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

<%!
int b=10;
public void display()
{
    out.print(b);
}
%>
Run Code Online (Sandbox Code Playgroud)

但它给出了“无法解决”之类的错误。

Psh*_*emo 5

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

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

如果你真的需要访问out你可以将它display作为参数传递给方法

public void display(JspWriter out) //javax.servlet.jsp.JspWriter 
{
    out.print(b);
}
Run Code Online (Sandbox Code Playgroud)

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

public int getB()
{
    return b;
}
Run Code Online (Sandbox Code Playgroud)

您可以在 scriptlet 中使用outlike<% out.print(getB()); %><%=getB()%>

但是你应该避免 scriptlets