第六:马士兵Struts2 视频学习笔记之参数传递

在action中接受参数的方法一共有三种:

第一种,在url中传参,只用action 的属性。

比如想传入两个参数name和age,可将url写为:

http://jrwasob5iy4opd5:8080/Struts2-helloworld/stu!add?name=xiaojin&age=24

 

对应的action标签为:



 

action对应的类为:



 可以看到,在类中有这两个参数,并且有getter和setter方法,这样,当执行这个action初始化该类时struts2会自动将url中的两个参数赋值。此时url中的参数和类中的参数一一对应,非常简单。

 

第二种方法: 使用DomainModel预模型

 此时有一个单独的类保存属性,并且为每一个属性设置setter和getter方法。

比如有一个保存属性的类User,如下所示:

package com.xiaojin.action;

public class User {
	private String name;
	private String age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}

}

 

 此时action的对应的类为:

package com.xiaojin.action;

import com.opensymphony.xwork2.ActionSupport;

public class Student2 extends ActionSupport{
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public User user;
	public String add(){
		System.out.println("name="+user.getName());
		System.out.println("age="+user.getAge());
		return "success";
	}

}

 可以发现,该类中一个属性类的对象的引用,当然,执行时不用我们初始化,struts2会帮我们自动初始化,需要注意的是,一定要记得为该对象的引用设置getter和setter方法,

此时的浏览器访问地址写为:

http://jrwasob5iy4opd5:8080/Struts2-helloworld/stu2!add?user.name=xiaojin&user.age=24

action标签映射为

<action name="stu2" class="com.xiaojin.action.Student2" method="add">
            <result name="success">
                /Hello.jsp
            </result>
        </action>

第三种:继承ModelDrive接口(不常用)

 

猜你喜欢

转载自huibuqule.iteye.com/blog/1883436