结果跳转方式
1.转发
// 在struts.xml配置里面,默认就是dispatcher,可以不填/xxx.jsp
3.重定向
// 在struts.xml配置里/xxx.jsp
4.转发到Action
Demo1Action /
5.重定向到Action
Demo1Action /
访问servletAPI方式
1.原理
通过ActionContext
// 不推荐用原生request域,推荐ActionContext存值ActionContext.getContext().put("name", "aaa"); // session域 => mapMapsessionScope = ActionContext.getContext().getSession();sessionScope.put("name", "aaa");// application域 => mapMap applicationScope = ActionContext.getContext().getApplication();applicationScope .put("name": "bbb");
如何获得参数
servlet线程是不安全的,servlet在运行期间只会创建一个实例
每次请求到来时,都会创建一个新的Action实例,Action是线程安全的.可以使用成员变量接收参数// 方式1:属性驱动获得参数//准备与参数键名称相同的属性private String name;//自动类型转换 只能转换8大基本数据类型以及对应包装类private Integer age;//支持特定类型字符串转换为Date ,例如 yyyy-MM-ddprivate Date birthday;// 方式2:对象驱动//js参数//javapublic 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; }}// 方式3:模型驱动 implements ModelDrivenpublic class Demo10Action extends ActionSupport implements ModelDriven { //准备user 成员变量 private User user =new User(); public String execute() throws Exception { System.out.println(user); return SUCCESS; } @Override public User getModel() { return user; } }
集合参数类型封装
//listprivate Listlist;//Mapprivate Map map;
注意:struts和hibernate包在合并时.javassist-3.18.1-GA.jar包是重复的,删除版本低的.