Struts2页面导航,用于添加和编辑操作

时间:2012-10-04 20:51:37

标签: java-ee struts2

我需要理解简单的流程,因为我是Struts2的新手,并且正在努力解决它。

我有简单的表单来添加学生信息。此表单用于添加&使用add&进行编辑分别编辑动作并调用一个名为saveOrUpdate的方法,该方法必须检查id并插入或更新用户。有些共同点。我使用的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/add时,显示的是register.jsp,但同时会触发saveOrUpdate,从而在其中执行代码(插入条件)。

如何在不执行saveOrUpdate的情况下在http://localhost:8080/Student/add上显示用户空白的新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按钮将在下方添加&amp;编辑数据。

<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>

3 个答案:

答案 0 :(得分:1)

你可以使用这样的全局结果:

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

   <action name="add"/>
   <action name="edit"/>
</package>

答案 1 :(得分: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>

答案 2 :(得分:0)

另一种方式,

添加约定插件:struts2-conventions-plugin-x.x.x.jar,其中x.x.x是版本。

创建: /WEB-INF/content/register-input.jsp和 /WEB-INF/content/register-success.jsp

如果Register类返回输入,则调用register-input,如果返回成功,则调用register-success。如果直接调用register-input并且没有RegisterInput类,那么视图将直接呈现。

一开始可能很难看到这个价值,但是尝试一下,你会被迷住。

更喜欢你的命名,你可以使用适当的视图返回-add,-edit等,虽然我个人不会这样做并坚持使用内置字符串(成功,输入,错误,...)并将添加,编辑等映射到命名空间。