更好地理解Struts2操作

时间:2012-06-15 05:40:56

标签: struts2 action

我正在努力学习Struts 2.0,我试图更好地理解行动的概念。我有一个表格,我希望预先加载值。用户可以更改JSP中的值,然后提交表单,这将导致页面显示表单中的数据。

我已经开始工作,但不确定我的方法/逻辑是否正确。

Struts.xml如下:

<action name="LoadForm" class="actions.Test" method="execute1">
  <result>/Test.jsp</result>
</action>

<action name="ShowResult" class="actions.Test" method="execute2">
  <result>/TestResult.jsp</result>
</action>

我正在使用prepare()来预加载值。

当我在浏览器中调用LoadForm.action时,Test.jsp会显示预加载的数据。

Test.jsp的表单的行为为ShowResult

当我提交表单时,它会导航到TestResult.jsp,我会在其中显示表单中的值。

这是一种正确的方法还是有更好的方法来做到这一点?

另外,我不确定为什么我们在Action类中需要多于2个执行方法。

1 个答案:

答案 0 :(得分:0)

几乎你是对的,除了你需要了解的一点,prepare方法类似于init方法,它可以帮助你在框架调用execute或任何其他方法之前初始化/准备数据。

S2中的操作作为模型以及控制器同时工作,并且很可能一个Controller正在执行多个任务。例如,我们有一个Action负责处理用户相关的流程,包括

  1. 创建新用户
  2. 更新用户
  3. 检查与用户相关的任何信息
  4. 因此,简而言之,我们不需要有三个不同的动作来执行这些任务,但我们将创建一个包含三个方法的Action,它将负责处理这些任务。

    我希望这可能会给你一个想法