3

ひえ...「if」または「switch」関数を含む動的コンテンツをjsp:param「value」属性に送信できるかどうか疑問に思っていました...次の方法で表すことができる単一の値を送信できます

<jsp:param name="blah" value="<%=blah%>"/>

今私が尋ねたいのは..

<jsp:param name="blah" value="<% 
                               if(blah == 1)
                               out.print("The value is 1");
                               if(blah == 2)
                               out.print("The value is 2");
                               %>"/>

上記の方法は可能ですか..同じことをすると、値属性のタグの後に「=」記号が必要であるというエラーが表示されます..

4

2 に答える 2

3

blahを実行する前にの値を決定することをお勧めしますjspservletこれは、ストレート Java を使用して実行できます。の値を決定したら、blahに転送する前にリクエストに配置しjspます。

request.setAttribute("blah", "some value");

次に、.jspファイル内で を使用して属性を参照できますjsp expression language

${blah}

ビュー (jsp) からできるだけ多くのロジックを除外することをお勧めします。

于 2013-02-25T10:17:56.970 に答える
2

に変更することを検討しますか

<% if(blah == 1){ %>
<jsp:param name="blah" value="The value is 1"/>
<%}else{%>
<jsp:param name="blah" value="The value is 2"/>
<%}%>

それ以外の場合は、次のような同等の JSTL タグを使用します

<c:choose>
   <c:when test="${blan eq 1}">
      <jsp:param name="blah" value="The value is 1"/>
   </c:when>
   <c:otherwise>
      <jsp:param name="blah" value="The value is 2"/>
   </c:otherwise>
</c:choose>

@gabbi、必ずしも two を持つ必要はありません<jsp:forward>。代わりに、以下のように、値を保持するために別の変数を宣言できます。

<% 
String blahValue = ""; 
if(blah == 1){
   blahValue = "The value is 1";
}else if(blah==2){
   blahValue = "The value is 2";
}else{
   blahValue = "the value is invalid"; }
%>

<jsp:forward>
   <jsp:param name="blah" value="<%=blahValue%>"/>
</jsp:forward>
于 2013-02-25T10:19:20.907 に答える