Struts2学习之旅(2)—-动态方法调用(通配符)
HelloWorldAction.java
package com.chb.action;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class HelloworldAction extends ActionSupport {
@Override
public String execute() throws Exception {
//首先获取ActionContext对象
ActionContext actionContext = ActionContext.getContext();
//获取session的Map模拟对象
Map session = actionContext.getSession();
//获取applicationContext的Map模拟对象
Map applicationContext = actionContext.getApplication();
applicationContext.put("app", "test");
//返回指定的视图,跳到那个界面
return SUCCESS;
}
//动态方法的调用, 是为了解决一个Action对应多个请求,以免Action过多。
public String add() {
return "add";
}
public String update() {
return "update";
}
}
使用动态方法调用, struts.xml配置
使用通配符, 不用添加更多的<action>
通过向method中添加通过符{1}
相对应的<result>中添加通配符{1};
在请求时
url:
update方法:
http://localhost:8080/Helloworld/helloworld_update.action
add方法
http://localhost:8080/Helloworld/helloworld_add.action
<!-- 使用通配符 -->
<package name="default" namespace="/" extends="struts-default">
<action name="helloworld_*" method="{1}" class="com.chb.action.HelloworldAction">
<result>/result.jsp</result>
<result name="add">/{1}.jsp</result>
<result name="update">/{1}.jsp</result>
</action>
</package>