我在 Apache Struts 中使用了两个动作,一个是 DisplayAddPerson,它转发到 AddPerson Action,它使用 DynaValidatorActionForm 来显示表单页面,在提交时数据被持久化并调用 ShowPersons Action。
<action path="/AddPerson" name="AddPersonForm" scope="request"
type="proj.actions.ManagePerson"
input="/DisplayAddPerson.do"
parameter="create">
<forward name="success" path="/ShowPersons.do" />
<forward name="unauthorized" path="/Unautorized.do" />
</action>
<action path="/DisplayAddPerson" type="proj.actions.ManagePerson"
parameter="displayAddPerson" validate="false">
<forward name="success" path="AddPerson" />
<forward name="unauthorized" path="/Unautorized.do" />
</action>
上面的工作很好,但是 DisplayAddPerson Action 没有用,因为它只是指向 ManagerPerson.java 中的一个函数 displayAddPerson,该函数转发给 AddPerson。
现在我尝试删除 DisplayAddPerson Action 并仅使用 AddPerson 操作来显示表单并在提交时调用自身
但是在上面的表格中没有显示,并且在没有显示任何表格的情况下调用了 ManagePerson.create()。如何让 AddPerson Action 首先显示 AddPersonForm 并在提交调用 create() 方法并成功重定向到 ShowPersons ?
谢谢