1

各ページの上部にNAVバーを配置する必要がある状況があります。そこで、ユーザーがアクティブなタブを示すパラメーターを持つ新しいJSPを各ページに含めることにしました。

私の実装は次のとおりです。

Dashboard.jsp

...
<s:include value="../tab-set.jsp">
    <s:param name="tab_name" value="dashboard" />
</s:include>
...

tab-set.jsp

<nav>
    <ul>
        <li <s:if test="param.tab_name == 'dashboard'">class="active"</s:if> >
            <a href="dashboard">Dashboard</a>
        </li>
        <li <s:if test="param.tab_name == 'tab_2'">class="active"</s:if> >
            <a href="suggestion">TAB 2</a>
        </li>
    </ul>
</nav>

その結果、IFケースは両方のタブで実行されません。

私もさまざまなアプローチで試しましたが、

<s:if test="#param.tab_name == 'dashboard'">

また

<s:if test="#attr.tab_name == 'dashboard'"> (ネット上で見つけた場所)

tab_nameまたは、を使用してページに値の値を印刷しようとしまし${param.tab_name}たが、何も起こりませんでした。

しかし、それらのどれも機能していません。

私を助けてください、または私が代わりに何ができるかを私に導いてください。

ありがとう。

4

4 に答える 4

2

レンダリングされたページ内で valuestack が作成されないため、その方法でパラメーターにアクセスすることはできません。request parameters のようにアクセスしてみてください${param.tab_name}

アップデート

<s:param>タグの値'dashboard'は、文字列であるため、 である必要があります。

<s:include value="../tab-set.jsp">
    <s:param name="tab_name" value="'dashboard'" />
</s:include>

インクルードされたページで記法をtab_name使用して取得し、タグ${param.tab_name}を使用して他の変数に設定します。<s:set>

<s:set name="tabName">
   ${param.tab_name}
</s:set>
<s:if test="#tabName == 'dashboard'">
</s:if>

この方法では、スクリプトレットを使用する必要はありません。

于 2012-12-07T11:24:13.613 に答える
0

次のコードで、dashboard.jspファイルを変更してください。

<s:include value="../tab-set.jsp">
    <s:param name="tab_name">dashboard</s:param>
</s:include>

「value」属性内で「String」値を宣言した場合、Struts 2 はそれを無視します。

于 2016-06-09T11:39:00.580 に答える
0

これは、include タグの使用方法に関する struts2 の ドキュメントです。

于 2012-12-07T11:53:31.337 に答える
0

トリックは欠けている部分にあります:

<% pageContext.setAttribute("tab_name" , request.getParameter("tab_name")); %>

次に、次のようにします。

タブセット.jsp

<% pageContext.setAttribute("tab_name" , request.getParameter("tab_name")); %>
<nav>
    <ul>
        <li <s:if test="#attr.tab_name == 'dashboard'">class="active"</s:if> >
            <a href="dashboard">Dashboard</a>
        </li>
        <li <s:if test="#attr.tab_name == 'tab_2'">class="active"</s:if> >
            <a href="suggestion">TAB 2</a>
        </li>
    </ul>
</nav>

楽しみ

于 2012-12-07T13:08:50.290 に答える