web-dev-qa-db-ja.com

メソッドはJSPスクリプトレット内で有効ですか?

私はそれが推奨されていないことを知っており、タグライブラリなどを使用する必要があります.

ただし、JSPスクリプレットでメソッドを宣言することが合法かどうかはまだ知りたいです。

<%
   public String doSomething(String param) {
      //
   }

   String test = doSomething("test");

%>

それは合法ですか?奇妙なコンパイルエラー(a ; is expected)収まらないようです。ありがとう。

30
bba

宣言構文(<%! ... %>):

<%! 
   public String doSomething(String param) { 
      // 
   } 
%>
<%
   String test = doSomething("test"); 
%> 
53
axtavt

jspの動作を理解する:JSP全体がTomcatによってJavaクラスに変換されます。このJavaクラスはサーブレット:したがって、最後に実行するのはサーブレットです。

考慮メソッドで渡された2つのnoの合計を出力するJspコードを書いている

<body>
  <%!               
  public int add(int a,int b)           
          {                                     
    return a+b;
          } 
   %>

  <% 
  int k;                
      k=add(5,6);
  %>

  <%=                   
      k                     
  %>

</body>

したがって、サーブレットで2つのnoの合計を出力する同じコードを記述する場合、おそらくdoGet()メソッドで記述することになります。

理由エラーが発生する理由は、別のメソッド内でメソッドを定義しているためです(メソッド定義の規則に違反しています)。

したがって、メソッドを定義タグに入れて、新しいメソッドを作成する場合

15
Saurabh Jain