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

A variable wrote inside a JSP function is not recognized

本文关键字:变量 识别 JSP 函数      更新时间:2024-03-14

这个函数写在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>
<%!
}
%>

我收到一条错误消息:"找不到符号符号:变量名称位置:类SimplifiedJSPServlet"

有什么建议可以解释为什么Name不被认可?我写得正确吗?放在正确的地方了吗?

看起来您的变量Name只在第一个字符串段中定义。要声明为类成员变量,请使用:

<%!
      String name;
%>

在任何方法范围之外。

<%!
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") %>

您的变量仅在函数调用期间处于作用域中。要获得价值,你需要做一些类似的事情

request.setAttribute("name", name);

在你的功能内部(你可以使用pageContext或请求-我不知道你想要什么范围。

然后在你的功能之外,你可以简单地做

<input type='image' name="${name}" />