一、结果跳转方式


/hello.jsp


/hello.jsp


Demo1Action /


Demo1Action /
二、访问servletAPI方式
1.原理

立即学习“Java免费学习笔记(深入)”;
2.通过ActionContext(推荐)


//如何在action中获得原生ServletAPIpublic class Demo5Action extends ActionSupport {public String execute() throws Exception {//request域=> map (struts2并不推荐使用原生request域)//不推荐Map requestScope = (Map) ActionContext.getContext().get("request");//推荐ActionContext.getContext().put("name", "requestTom");//session域 => mapMap sessionScope = ActionContext.getContext().getSession();
sessionScope.put("name", "sessionTom");//application域=>mapMap applicationScope = ActionContext.getContext().getApplication();
applicationScope.put("name", "applicationTom"); return SUCCESS;
}
}
3.通过ServletActionContext


//如何在action中获得原生ServletAPIpublic class Demo6Action extends ActionSupport {//并不推荐public String execute() throws Exception {//原生requestHttpServletRequest request = ServletActionContext.getRequest();//原生sessionHttpSession session = request.getSession();//原生responseHttpServletResponse response = ServletActionContext.getResponse();//原生servletContextServletContext servletContext = ServletActionContext.getServletContext();return SUCCESS;
}
}
4.通过实现接口方式


//如何在action中获得原生ServletAPIpublic class Demo7Action extends ActionSupport implements ServletRequestAware { private HttpServletRequest request;public String execute() throws Exception {
System.out.println("原生request:"+request);return SUCCESS;
}
@Overridepublic void setServletRequest(HttpServletRequest request) {this.request = request;
}
}
三、如何获得参数
1.扩展
1.1 strutsMVC

1.2 Action生命周期
1.2.1 每次请求到来时,都会创建一个新的Action实例
宽维企业网站管理系统功能说明宽维系列网站管理系统全面免费,个人和商业应用均免费。宽维企业网站管理系统是基于Php+MySql技术开发的企业电子商务平台,全后台操作,无需学习网页制作等知识。前台智能生成页面,可以方便地在线管理、维护、更新您的企业网站。宽维企业网站管理系统安装简单快捷,5分钟就可以安装完成。1 栏目管理方便灵活:可以发布和管理您需要的任何内容的个性栏目。内置数十个功能发布模型,并可以
1.2.2 Action是线程安全的.可以使用成员变量接收参数
2.属性驱动获得参数




//准备与参数键名称相同的属性private String name;//自动类型转换 只能转换8大基本数据类型以及对应包装类private Integer age;//支持特定类型字符串转换为Date ,例如 yyyy-MM-ddprivate Date birthday; public String execute() throws Exception {
System.out.println("name参数值:"+name+",age参数值:"+age+",生日:"+birthday); return SUCCESS;
}public String getName() {return name;
}public void setName(String name) {this.name = name;
}public Integer getAge() {return age;
}public void setAge(Integer age) {this.age = age;
}public Date getBirthday() {return birthday;
}public void setBirthday(Date birthday) {this.birthday = birthday;
}
3.对象驱动




public class Demo9Action extends ActionSupport {//准备user对象private User user;public String execute() throws Exception {
System.out.println(user); return SUCCESS;
}public User getUser() {return user;
}public void setUser(User user) {this.user = user;
}
}
4.模型驱动




public class Demo10Action extends ActionSupport implements ModelDriven{//准备user 成员变量private User user =new User();public String execute() throws Exception { System.out.println(user); return SUCCESS; } @Overridepublic User getModel() {return user; } }
四、集合类型参数封装
1.List和Map




public class Demo11Action extends ActionSupport {//listprivate List list;//Mapprivate Map map;
public String execute() throws Exception {
System.out.println("list:"+list);
System.out.println("map:"+map); return SUCCESS;
}public List getList() {return list;
}public void setList(List list) {this.list = list;
}public Map getMap() {return map;
}public void setMap(Map map) {this.map = map;
}
}
五、练习:添加客户
注意:struts和hibernate包在合并时.javassist-3.18.1-GA.jar包是重复的,删除版本低的.
实现步骤:



public class CustomerAction extends ActionSupport implements ModelDriven{private CustomerService cs = new CustomerServiceImpl();private Customer customer = new Customer(); //添加客户public String add() throws Exception {//1 调用Service cs.save(customer);//2 重定向到列表action方法return "toList"; } }


/jsp/customer/list.jsp CustomerAction_list /










