質問

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

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

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

   String test = doSomething("test");

%>

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

役に立ちましたか?

解決

宣言の構文を使用する必要があります(<%! ... %>):

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

他のヒント

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()メソッドにそれを書くでしょう。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top