首页 > 解决方案 > Struts 2 post back 默认

问题描述

在 Struts 文档中,它说:

另一个常见的工作流策略是首先使用替代方法呈现页面,例如输入,然后将其提交回默认的执行方法。

https://struts.apache.org/core-developers/action-configuration.html#post-back-default

如何仅使用注释来做到这一点?似乎只execute()调用了方法。

标签: annotationsstruts2struts2-convention-plugin

解决方案


在文档中,据说渲染页面可以使用另一种方法,例如input. 这意味着当您在页面上提交表单时,它可以返回input结果。如果验证失败,通常它会在验证过程中自动发生hasErrors。然后您可以将表单提交回默认操作的execute方法。您无需method在操作配置中指定 a。此外,如果您没有action在标签中指定属性,form那么将执行用于呈现页面的相同操作。

配置操作,您可以在使用方法success渲染页面和请求方法时使用相同的页面作为结果。GET inputPOST

要使用注释来配置操作映射,您可以使用Convention Plugin

另请注意,要将类方法映射到操作,您应该@Action直接在此方法上而不是在类上放置注释。

您可以在此处找到更详细的说明和文档。

@Namespace("/")
public class ProductAction extends ActionSupport  {

 public String execute() { 
   return SUCCESS;

 }

 @Action(value="product",
   results=@Result(location="/product-list.jsp")
 )
 public String search() {
   return SUCCESS;
 }
}

请注意,该方法execute未映射,因此不会执行。如果您需要执行该方法,您应该创建到它的映射。为此,您可以在 class 或 method 上放置注释execute


推荐阅读