0

我正在尝试学习 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 个执行方法。

4

1 回答 1

0

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

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

  1. 创建新用户
  2. 更新用户
  3. 检查与用户相关的任何信息

所以简而言之,我们不需要三个不同的动作来执行这些任务,但我们将创建一个包含三个方法的单个动作,它们将负责处理这些任务。

我希望这能给你一个想法

于 2012-06-15T06:08:35.680 回答