我有一个方法,我拿了一个变量int b = 10&我想打印这个值 在显示方法。我该怎么办?
<%!
int b=10;
public void display()
{
out.print(b);
}
%>
但它给出了错误,例如“出来无法解决”。
答案 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中使用它
答案 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) %>