0

diary.jsp という jsp ページがあり、それに関連付けられたアクション クラスは DiaryAction と呼ばれ、このクラスでは populate メソッドを使用してフィールドに事前入力しています。URLでPopulateDiary.actionを使用して最初にページにアクセスすると、これは期待どおりに機能します。

<li><a href="populateDiary.action">Profile</a></li>

ただし、このページの一部として、ユーザーが新しい日記エントリを追加できるフォームがあります。このフォームの送信時に、次のアクションを呼び出します。

<action name="addDiaryEntry" method="addDiaryEntry"    
    class="spirit.of.community.action.classes.DiaryAction">
    <result name="success">/diary.jsp</result>
</action>

これは、新しい日記エントリを追加するための正しいコードを呼び出しています。ただし、このアクションメソッドが成功した場合は、同じページ、つまり diary.jsp に入力されたデータを再度表示したいと思います (更新されたエントリを含めるため)。これで目標が達成されることを期待して、diary.jsp ページ内に次の行を配置しました。

<s:action name="populateDiary"></s:action>

diary.jsp が読み込まれると、populate メソッドが呼び出されていることがわかります。しかし、ページには私のデータが入力されていません。重要な場合、フォーム送信時の URL は「/addDiaryEntry.action」です。addEvent メソッドを呼び出して新しいエントリを追加し、更新されたデータでページをリロードする方法を教えてもらえますか? どんなアドバイスでも大歓迎です!前もって感謝します!

4

1 に答える 1

1

これを達成する方法はいくつかありますが、ここにあります

  1. アクションを呼び出しaddDiaryEntryて日記インスタンスを追加すると、すべてのエントリのリストを作成でき、イテレータを使用してデータを表示できます。
  2. 他の方法は<s:action name="populateDiary" executeResult="true">です。

execute result このアクション (おそらくビュー) の結果を実行/レンダリングする必要があるかどうかを示します。

詳細については、実行アクションを参照してください。

于 2012-09-02T12:02:07.530 に答える