此函数写在jsp文件的HEAD标记内,我从jsp BODY标记内部调用它:
<%!
public void func1(String var1, String var2)
{
String Name = var1 + "," + var2;
%>
<input type='image' name=<%=Name%>
src='somePath' onclick="submit()"/></br>
<%!
}
%>
我收到一条错误消息: “找不到标志 符号:变量名称 location:class SimplifiedJSPServlet“
任何有关名称未被识别的建议?我是否正确地写了它并将它放在正确的位置?
答案 0 :(得分:3)
看起来您的变量Name
仅在第一个scriplet段中定义。要声明为类成员变量,请使用:
<%!
String name;
%>
在任何方法范围之外。
答案 1 :(得分:1)
<%!
public void func1(String var1, String var2)
{
String Name = var1 + "," + var2;
out.println("<input type='image' name='" + Name + "' src='somePath' onclick='submit()'/><br>");
}
%>
然后,您可以在JSP中的任何位置调用上述方法。
Ex: <%= func1("Text1", "Text2") %>
答案 2 :(得分:0)
您的变量仅在函数调用期间的范围内。要访问该值,您需要执行类似
的操作request.setAttribute("name", name);
在你的函数中(你可以使用pageContext或request - 我不知道你想要什么范围。
然后在你的功能之外你可以简单地做
<input type='image' name="${name}" />