当然,参数可通过网址(结果类型 Redirect
/ Redirect Action
),
或通过@Action(params)
(Static Parameters Interceptor
)
id=123
(validation errors
)之后 @Result(name="input")
必须存在于网址中
/update?id=123
与 RESTful 网址格式相似(Struts2-rest-plugin
不予考虑):
/update/123
我使用redirect-after-post technique
+ Message Store Interceptor
进行成功操作,但这不能用于input
之后的validation errors
,因为操作数据(包括无效)数据)将丢失/恢复为默认值。
欢迎任何解决方案/建议。感谢。
答案 0 :(得分:3)
您是否尝试过通配符来捕获数据?
以下是一些struts2文档的链接(快速阅读我觉得它不是很有用):http://struts.apache.org/2.0.6/docs/wildcard-mappings.html
但是,如果您按照这篇文章和解决方案进行操作,您将清楚地看到如何从URL中捕获数据(虽然该问题的海报更有兴趣排除部分网址,但它只是使主题更加完整) :Struts2 Wildcard action mapping with dummy data
您的问题可能主要是因为使用了“重定向后发布”。在struts2中执行此操作几乎没有价值。一般来说,使用自定义拦截器可以更好地解决这一问题,因为这些拦截问题可以解决您对这些操如果您担心双重提交,TokenInterceptor拦截器已经解决了这个问题。