1

この関数はjspファイルのHEADタグ内に記述されており、jspBODYタグ内から呼び出します。

<%!
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は最初のスクリプトレット セグメント内でのみ定義されているようです。クラス メンバー変数として宣言するには、次を使用します。

<%!
      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 に答える