在JSP函数内写入的变量无法识别

时间:2012-07-25 17:17:37

标签: java javascript html jsp servlets

此函数写在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“

任何有关名称未被识别的建议?我是否正确地写了它并将它放在正确的位置?

3 个答案:

答案 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}" />