0

struts2 のタグを使用して JSP ページからアクションを呼び出す際に問題があります。login.jsp ファイルがあります。

<s:action name="headerMenu" executeResult="true" namespace="/menu"</s:action>
<s:form action="executeLogin">
    <s:textfield name="username" label="Username"></s:textfield>
    <s:password name="password" label="Password"></s:password>
    <s:submit></s:submit>
</s:form>

headerMenu アクションは、結果を header.jsp にレンダリングします。

<div id="menu">
    <s:iterator value="menus">
        <s:property escape="false" value="'<a href=\"'+path+'\" title=\"'+description+'\">'+title+'</a>'"/>
    </s:iterator>
</div>

この jsp ファイルは、headerMenu アクションの Action クラスの LinkedList (名前付きメニュー) からのメニューをレンダリングします。

「login.action」にアクセスすると、メニューは正常にレンダリングされますが、フォームにデータを入力してフォームを送信し、送信に検証エラーがある場合、ページに戻り、フォームは正常にレンダリングされますが、メニュー不足している。ページにはまだ「...」がありますが、メニューはありません...メニューを与えるアクションが呼び出されたが、execute()メソッドが実行されないようなものです...

誰かがこれで私を助けてくれますか?

ヴァシ。

4

2 に答える 2

3

1行目に注目してください。s:action タグが正しく閉じられていません。次のようになります。

<s:action name="headerMenu" executeResult="true" namespace="/menu"></s:action>
于 2010-07-26T10:09:16.353 に答える
0

原因が struts2 タグ ドキュメントの次の 2 つのスニペットに関連しているかどうかを調べています。

「executeResult パラメーターが指定されていない限り、struts.xml でこのアクションに対して定義された結果プロセッサーは無視されます。」

「タグ全体が評価されるまで、アクションはコンテキストに公開されません。つまり、タグの本文内では、アクションにアクセスできません」

于 2009-03-30T03:25:19.963 に答える