我很难将 codebehind 注释转换为传统的struts.xml
文件。
如何识别动作类中的动作名称?因为如果写方法public String list{}
- 与JSP product-list.jsp
匹配的操作将自动识别页面,并且URL是product!list
。什么是传统的插件?
当前网址:
http://localhost:7001/example/product!search
- jsp名称product-search.jsp
和ProductAction
- 动作类。
请告诉我如何配置上述配置等同的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]
答案 0 :(得分:0)
在Struts2中,操作映射在方法上。上面的网址应该映射为
<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
未映射,因此不会执行。如果您需要该方法执行,您应该创建映射到它。为此,您可以在类或方法execute
上放置注释。
您可以在site上找到更多示例。