1

这个函数写在 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”

任何建议为什么名称无法识别?我是否写得正确并将其放置在正确的位置?

4

3 回答 3

3

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

<%!
      String name;
%>

在任何方法范围之外。

于 2012-07-25T17:26:53.280 回答
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") %>
于 2012-07-25T18:08:38.267 回答
0

您的变量仅在函数调用期间的范围内。要访问该值,您需要执行以下操作

request.setAttribute("name", name);

在你的函数内部(你可以使用 pageContext 或 request - 我不知道你想要什么范围。

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

<input type='image' name="${name}" />
于 2012-07-25T17:49:03.133 回答