方法1:
在struts.xml配置
<package name="product" namespace="/product" extends="struts-default">
<action name="list" class="web.action.ProductAction" method="list">
<result>/list.jsp</result>
</action>
<action name="add" class="web.action.ProductAction" method="add">
<result>/add.jsp</result>
</action>
</package>
method属性对应这action中的方法名
方法2:
超链接或提交表单时选择用执行的方法
struts.xml
<package name="product" namespace="/product" extends="struts-default">
<action name="product" class="web.action.ProductAction">
<result>/list.jsp</result>
</action>
</package>
html:
<a href="/product/product!list.action" />
执行ProductAction中的list方法
表单提交
<form action="/product/product!list.action"></form>
实际应用:
基于方法1:{1}
1.让action的name,method和返回的jsp都叫一样的名字
2.struts.xml如下配置
<package name="product" namespace="/product" extends="struts-default">
<action name="{1}" class="web.action.ProductAction" method="{1}">
<result>{1}.jsp</result>
</action>
</package>
当url为/product/list时,{1}就会换成{list},就可以实现调用action中的方法了
需要多个通配符时,可以这样name="{1}_{2}"
基于方法2:!
这个方法配置的action很少,要想返回的视图jsp不能写死,要用这样方法:<result>${params}</result>
action
public class ProductAction extends ActionSupport{
private String result;
public String list{
....
this.setResult("list");
return SUCCESS;
}
}
<package name="product" namespace="/product" extends="struts-default">
<action name="product" class="web.action.ProductAction">
<result>/${result}.jsp</result>
</action>
</package>
${result}会被变为list,最终结果是<result>list.jsp</result>,这样就实现了动态的返回视图jsp