1

结果跳转方式

1.转发

// 在struts.xml配置里面,默认就是dispatcher,可以不填
<result name="success" type="dispatcher">/xxx.jsp</result>

3.重定向

// 在struts.xml配置里
<result name="success" type="redicter">/xxx.jsp</result>

4.转发到Action

<!-- 转发到Action -->
    <action name="Demo3Action" class="cn.zhli13.a_result.Demo3Action" method="execute" >
         <result name="success" type="chain">
                 <!-- action的名字 -->
             <param name="actionName">Demo1Action</param>
                 <!-- action所在的命名空间 -->
             <param name="namespace">/</param>
         </result>
    </action>

5.重定向到Action

    <!-- 重定向到Action -->
    <action name="Demo4Action" class="cn.zhli13.a_result.Demo4Action" method="execute" >
        <result  name="success"  type="redirectAction">
             <!-- action的名字 -->
             <param name="actionName">Demo1Action</param>
             <!-- action所在的命名空间 -->
             <param name="namespace">/</param>
        </result>
    </action>

访问servletAPI方式

1.原理

clipboard.png

通过ActionContext

// 不推荐用原生request域,推荐ActionContext存值
ActionContext.getContext().put("name", "aaa");   
// session域 => map
Map<String, Object> sessionScope = ActionContext.getContext().getSession();
sessionScope.put("name", "aaa");
// application域 => map
Map<String, Object> applicationScope = ActionContext.getContext().getApplication();
applicationScope .put("name": "bbb");

如何获得参数

servlet线程是不安全的,servlet在运行期间只会创建一个实例
每次请求到来时,都会创建一个新的Action实例,Action是线程安全的.可以使用成员变量接收参数

// 方式1:属性驱动获得参数
//准备与参数键名称相同的属性
private String name;
//自动类型转换 只能转换8大基本数据类型以及对应包装类
private Integer age;
//支持特定类型字符串转换为Date ,例如 yyyy-MM-dd
private Date   birthday;
// 方式2:对象驱动
//js参数
<input name="user.name" type="text"/>
//java
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;
    }
}
// 方式3:模型驱动 implements ModelDriven<User>
 public class Demo10Action extends ActionSupport implements ModelDriven<User> {
    //准备user 成员变量
    private User user =new User();    
    public String execute() throws Exception {             
        System.out.println(user);            
        return SUCCESS;
    }    
    @Override
    public User getModel() {
        return user;
    }    
}

集合参数类型封装

//list
private List<String> list;
//Map
private Map<String,String> map;

注意:struts和hibernate包在合并时.javassist-3.18.1-GA.jar包是重复的,删除版本低的.


zer0_li
1.4k 声望307 粉丝

经不住似水流年,逃不过此间少年


« 上一篇
Struts2 入门 1
下一篇 »
OGNL表达式