2

プロジェクトをStruts1.3からStruts2.0に移行しています。Webで利用できるさまざまなリソースを読みましたが、Struts2.0reset()でStruts1.3フォームメソッドの代替手段を見つけることができませんでした。

私のアクションクラスはを拡張ActionSupportして実装しModeldrivenます。アクションクラスにvalidateメソッドを実装しましたが、これは完璧に機能します。ただし、フォームにエラーがなく、送信が適切に行われると、ページは初期値でリロードされます。

空白のフォームが届くと思っていました。reset()フォームメソッドを探しましたが、見つかりませんでした。現在、すべてのフォーム値を明示的に空白に設定しています。私はこれを良いプログラミング手法とは考えていません。struts 2.0でformreset()を実装する方法を提案してください。

4

2 に答える 2

1

編集:わかりました、あなたはタイルを使用しています(私は一度も使用したことがありません)。その後、別の解決策を試します:

空の JSP タイルがあり、ユーザーがそのフィールドをコンパイルしてフォームを送信した後、常にそれらのフィールドをクリアしたい場合...アクションで SETTERS のみを宣言し、GETTERS を宣言しないのはどうですか?

JSP から Action に設定することしかできませんでしたが、JSP から読み取ることはできませんでした。その場合、ページ内のフィールドは常に空になり、Action 内のセッターによって常に書き換えられます。


私がそれを得た場合、あなたはJSPを使用しています。アクション(または別のアクション)のsaveStuff()メソッドを呼び出してから、ページに戻ります...

この場合、リクエストからすべてのパラメーターを取り除き、リクエストをアクションの execute() メソッドにリダイレクトする RedirectAction 戻り値の型を使用できます。

だから、代わりに

<action name="myAction" class="com.blabla.myAction">
        <result name="success">/myPage.jsp</result>
</action>

ただする

<action name="myAction" class="com.blabla.myAction">
      <result name="success">/myPage.jsp</result>
      <result name="stuffSaved" type="redirectAction">
          <param name="actionName">myAction</param>
      </result>
</action>

このようにして、初期状態に戻ります (JSP によって読み取られるセッションに何も入れていないと仮定します)。

于 2012-11-06T08:57:28.343 に答える
0

あなたのActionとは Struts2 の同じクラスにあるため、必要なデータをクリアするにはForm独自のメソッドを実装する必要があります。reset()

于 2012-11-06T06:49:34.630 に答える