0

標準の struts タグ ライブラリを使用して jsp で struts2 を使用します。

ページの読み込み時に DIV を動的に非表示にしようとしていますが、それでもブラウザーに送信します。これは、後で JavaScript を介して表示できるようにするためです。

リクエスト オブジェクト 1 と 2 は、jsp:usebean タグを介して簡単に参照できません。(それらは列挙型であり、インスタンス化できません) s:if タグまたは c:if タグの組み合わせを使用してみましたが、見栄えがよくありません。

<%
    String displayStr = "display: none;";
    if(request.getAttribute("one") != null || request.getAttribute("two") != null  ) {
        displayStr = "display: block;";
    }
 %>

<div id="next" style="<%=displayStr %>">

これを行うためのより良い方法についての提案はありますか?

4

3 に答える 3

0

JSTL の使用:

   <c:set var="displayStr" value="display:none"/>
   <c:if test="${!empty one || !empty two}">
        <c:set var="displayStr" value="display:block"/>
   </c:if>
   <div id="next" style="${displayStr}">
于 2010-05-05T19:12:22.100 に答える
0

うーん、それは醜かった。飲み込みましょう、そして別の方法を教えてください...うーん...たとえば、次のように書くことができます:

<div id="next" 
  style="display:<s:if test="divVisible">block</s:if><s:else>none</s:else>">

またはまた

<s:if test="divVisible">
  <s:set name="divStyle" value="%{'display:block'}"/>
</s:if>
<s:else>
  <s:set name="divStyle" value="%{'display:none'}"/>
</s:else>

<div id="next" style="<s: property value="#divStyle">">

そして、アクションisDivVisible()で、パラメーター「1」と「2」を読み取るメソッドを提供します(httpRequestからではありません!)

于 2010-05-05T19:13:19.227 に答える
0

テンプレートテキストでプレーンELを使用するだけです:

<div id="next" style="display: ${(!empty one || !empty two) ? 'block' : 'none'}">

スクリプトレットの使用は、10 年以上推奨されていません。それらはすべて taglibs (Struts2、JSTL など) と EL に置き換える必要があります。それが不可能な場合、コード ロジックはほぼ確実に、モデル オブジェクト、サーブレット (または Struts2 アクション) などの実際の Java クラスに属します。

于 2010-05-05T23:28:05.000 に答える