0

我对将代码隐藏注释转换为常规struts.xml文件感到困惑。

如何识别动作类中的动作名称?因为如果 write method public String list{}- action 它与 JSP 的匹配product-list.jsp将自动识别页面和 URL 就是product!list这样。什么是常规插件?

当前网址:

http://localhost:7001/example/product!search- jsp 名称product-search.jspProductAction- 动作类。

请告诉我如何配置与struts.xml上述配置等效的文件。

我试过如下:

<package name="example" namespace="/" extends="struts-default">
  <action name="Search">
    <result>product-search.jsp</result>
  </action>         
</package>

错误 :

org.apache.struts2.dispatcher.Dispatcher - Could not find action or result
There is no Action mapped for namespace / and action name part. - [unknown location]
4

1 回答 1

0

在 Struts2 中,动作被映射到方法上。上面的 url 你应该映射为

<package name="example" namespace="/" extends="struts-default">
   <action name="product" method="search"> <!-- case sensitive -->
     <result>product-search.jsp</result>
   </action>
</package>

或通过注释

@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

您可以在 Convention Plugin页面上找到更多示例。

于 2013-06-30T09:18:30.313 回答