1

JSPで静的変数を宣言する方法はあります<%! int like=0;%>か?JSPページで静的変数を宣言するためのカスタムタグにタグはありますか?

そうでない場合で、静的整数変数を「このよう<%! int like=0;%>に」宣言した場合、ELを使用してこの変数値を取得する方法はあります${like}か?関数にこの値が必要で、をJQuery使用してこの値を取得できることはわかっていますが<%=like>、他の方法が必要です。

4

4 に答える 4

3

静的ではありませんが、JSTL <c:set>を使用してアプリケーション スコープの変数を宣言できます。

<c:set var="like" value="0" scope="application" />

JSP に JS 変数であるかのように出力させるだけで、JS/jQuery コードで取得できます。

<script>
    var like = ${like};
</script>
于 2013-02-26T14:42:33.280 に答える
2

クライアント (ブラウザー) で使用できるサーバー側で変数を宣言したい場合は、web.xml でサーブレット コンテキスト パラメーターを宣言できます。

<web-app>
  <context-param>
    <param-name>yourParamName</param-name>
    <param-value>yourParamValue</param-value>
  </context-param>
  ...
</web-app>

式言語にはinitParam、JSP のサーブレット コンテキスト パラメータにアクセスできる暗黙的なオブジェクトがあります。

${initParam.yourParamName}
于 2013-02-26T11:33:27.730 に答える
0

ELを使用して静的変数にアクセスすることはできません。静的変数を次のように宣言している場合、ELを使用して値を取得することはできません

<%!
        public static int a=343;        
       %>

したがって、 EL<c:set var="a" value="${'hello'}" ></c:set>を使用するように変数を宣言する必要があります。そうすると、 ELを使用して値(<c:out value="${a}"></c:out>)を取得するのはあなただけになります。

jspページ(servlet)のコピーは1つしか存在せず、リクエストごとに_jspServiceメソッドが呼び出されるため、すべてのユーザーが同じインスタンス変数を使用できるため、インスタンス変数として宣言する必要があります(_jspServiceメソッド)。つまり、リクエストごとにサーブレットの新しいインスタンスは作成されません。jspのライフサイクルについて参照してください。

于 2013-02-26T11:22:56.087 に答える