【发布时间】:2014-02-04 19:27:18
【问题描述】:
我正在使用 Struts 1 开发一个 Java 库项目(我知道它很旧,但这是一个学校项目)。
我使用 op 参数创建了一个 DispatchAction 来处理不同方法(添加、编辑、删除)的 Book 请求。
add 方法可以正常工作,因为它有类似 /book.do?op=add 的 url,但 edit 有一个概念性问题,它使用类似 book.do?op=edit&id=1 的动态 url:
如果验证发现一些错误,动作怎么知道在哪里 重定向?输入属性是静态的,但是发送请求的页面有一个动态的url。
我的 struts-config.xml 中有这个:
<!-- Base Book Action -->
<action path="/book" type="com.github.jcpp.jathenaeum.actions.BookAction" parameter="op">
<forward name="add" path="page.addBook"/>
<forward name="edit" path="page.editBook"/>
<forward name="delete" path="page.deleteBook"/>
<forward name="viewAll" path="page.viewAllBooks"/>
<forward name="noAuthors" path="page.noAuthors" />
</action>
<!-- Action Book -->
<action
path="/doBook"
type="com.github.jcpp.jathenaeum.actions.BookActionDo"
name="bookForm"
scope="request"
validate="true"
parameter="op">
<forward name="add" path="page.confirmBookInsert"/>
<forward name="edit" path="page.confirmBookInsert"/>
<forward name="success" path="page.confirmBookInsert"/>
<forward name="failed" path="page.failedBookInsert"/>
</action>
我想知道的是:这是做这种事情的最好方法吗?还是有更简单的方法?
可以动态设置输入属性的值吗?
如果您愿意,可以在 GitHub 上查看整个项目代码:https://github.com/JCPP/JAthenaeum
更新 1
我的问题是在验证后重定向到这样的动态网址:book.do?op=edit&id=1。您可以更改的书可以有不同的 id (29, 50, 49)。在这种情况下,输入属性是窄的。
谢谢
【问题讨论】: