1

私はStruts2が初めてで苦労しているので、単純なフローを理解する必要があります。

学生情報を追加するための簡単なフォームがあります。このフォームは、それぞれ追加および編集アクションで追加および編集するために使用され、両方とも ID をチェックしてユーザーを挿入または更新する必要がある saveOrUpdate と呼ばれる 1 つのメソッドを呼び出します。よくあること。私が使用するURLは以下のとおりです

http://localhost:8080/Student/add  -> action = add  -> method = saveOrUpdate -> register.jsp
http://localhost:8080/Student/edit -> action = edit -> method = saveOrUpdate -> register.jsp

私の問題:

入力するとhttp://localhost:8080/Student/addregister.jsp が表示されますが、同時に saveOrUpdate がトリガーされ、その中のコードが実行されます(挿入条件)。

http://localhost:8080/Student/addsaveOrUpdate を実行せずに、空白の新しい register.jsp ページをユーザーに表示するにはどうすればよいですか?

私の解決策は以下のとおりですが、どうすればこれを行うことができますか。私のアプローチは正しいですか?以前は違いましたが、オンライン チュートリアルを読むと、以下の結論に達しました。追加と編集は同じ結果を使用するため、これは少し冗長です。どんな助けでも。

<action name="add">
            <result>/WEB-INF/pages/student/register.jsp</result>
        </action>

        <action name="edit">
            <result>/WEB-INF/pages/student/register.jsp</result>
        </action>

register.jsp ボタンには、データを追加および編集するための以下のアクションがあります。

<action name="insertOrUpdateStudent" class="com.myapp.actions.StudentAction" method="insertOrUpdateStudent">
    <result name="success" type="redirectAction">list</result>
    <result name="input">/WEB-INF/pages/student/register.jsp</result>
</action>
4

3 に答える 3

1

次のようにグローバル結果を使用できます。

<package>
   <global-results>
      <result name="success">/WEB-INF/pages/student/register.jsp</result>
   </global-results>

   <action name="add"/>
   <action name="edit"/>
</package>
于 2012-10-04T21:11:05.830 に答える
0

別の方法、

規則プラグインを追加します: struts2-conventions-plugin-xxxjar (xxx はバージョン)。

作成: /WEB-INF/content/register-input.jsp および /WEB-INF/content/register-success.jsp

Register クラスが入力を返す場合は register-input が呼び出され、成功を返す場合は register-success が呼び出されます。register-input を直接呼び出す場合、RegisterInput クラスがないため、ビューが直接レンダリングされます。

最初は価値がわかりにくいかもしれませんが、試してみると夢中になります。

ネーミングと同じようにするには、適切なビューで-add、-editなどを返すことができますが、個人的にはこれを行わず、組み込みの文字列(成功、入力、エラーなど)に固執し、名前空間に追加、編集など。

于 2012-10-04T22:16:41.523 に答える
0

追加/編集アクションにさまざまなメソッドを追加できます。

<action name="add" method="add" class="com.myapp.actions.StudentAction">
  <result>/WEB-INF/pages/student/register.jsp</result>
</action>

<action name="edit" method="edit" class="com.myapp.actions.StudentAction">
  <result>/WEB-INF/pages/student/register.jsp</result>
</action>
于 2012-10-04T21:22:17.797 に答える