struts2获得参数的四种方法,struts2的参数数据类型转换

获得参数

目录

获得参数

1. Action和Model相结合

2.Action和Model分离

3.实现一个ModelDriver接口

4.集合类型的参数(list, map)  ,student>

参数数据的类型转换(convert)

自动转换

手动转换(自定义数据类型转换)


1. Action和Model相结合

action层:

private String uname;
private String upasswd;

扫描二维码关注公众号,回复: 4783643 查看本文章

jsp页面:

<form action="userAction">
    用户名:<input name="uname" /><br />
    密码:<input name="upasswd" /><br />
    <input type="submit" value="登陆" />
</form>

2.Action和Model分离

pojo层: 

public class Pojo {
	private String sname;
	private String sage;

action层:

public class StudentAction extends ActionSupport {
	private Pojo pojo;

jsp页面: 

<form action="studentAction">
    姓名:<input name="pojo.sname" /><br />
    年龄:<input name="pojo.sage" /><br />
    <input type="submit" value="提交" />
</form>

3.实现一个ModelDriver接口

 

pojo层:

public class Teacher {
	private String tname;
	private String tpasswd;

action层: 

public class TeacherAction extends ActionSupport implements ModelDriven<Teacher>{ 
	//创建一个对象的实例
	private Teacher teacher = new Teacher();
	public Teacher getModel() {
		return teacher;
	}

jsp页面:

<form action="teacherAction">
    姓名:<input name="tname" /><br />
    密码:<input name="tpasswd" /><br />
    <input type="submit" value="提交" />
</form>

4.集合类型的参数(list<Student>, map<string,Student>)  

  •  list<Student> 

1. 先有一个student实体类

public class Student {
	private String sname;
	private String spasswd;
	
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public String getSpasswd() {
		return spasswd;
	}
	public void setSpasswd(String spasswd) {
		this.spasswd = spasswd;
	}
	@Override
	public String toString() {
		return "Student [sname=" + sname + ", spasswd=" + spasswd + "]";
	}
}

2. 在action里面写一个StudentListAction类,里面包含了一个List<Student>

public class StudentListAction extends ActionSupport{
	private List<Student> students;

3. 写jsp页面,里面包含student.属性 

<form action="studentListAction">
    姓名:<input name="students[0].sname" /><br />
    年龄:<input name="students[1].spasswd" /><br />
    姓名:<input name="students[0].sname" /><br />
    年龄:<input name="students[1].spasswd" /><br />
    <input type="submit" value="提交" />
</form>
  • map<string,Student>

action层:

public class StudentMapAction extends ActionSupport{
	private Map<String,Student> mapStudent;

jsp页面:  

<form action="studentMapAction">
    姓名:<input name="mapStudent['s1'].sname" /><br />
    年龄:<input name="mapStudent['s2'].spasswd" /><br />
    姓名:<input name="mapStudent['s1'].sname" /><br />
    年龄:<input name="mapStudent['s2'].spasswd" /><br />
    <input type="submit" value="提交" />
</form>

参数数据的类型转换(convert)


用户输入参数,并提交给服务端,所有的数据都是String类型。

当我们获得参数的时候,并给对象赋值,这时候会把String类型转化成其他类型。

数据类型的转换:主要包含两类,其他类型转化成String类型,String类型转化成其他类型。

其他类型转化成String类型,客户端向服务端发送数据,显示数据

String类型转化成其他类型,保存数据

自动转换

String--》boolean,Long,Double,byte,short,float,char,int
String--》Date 默认只支持yyyy-MM-dd形式

手动转换(自定义数据类型转换)

1. 需要一个手动转换类 

继承StrutsTypeConverter
convertFromString() 从字符串转化成其他类型
convertToString()  从其他类型转化成字符串

 2. 注册转换类

在action包中,创建一个ActionName-conversion.properties
person.birthday=com.dm.struts.convert.DateTypeConverter;

猜你喜欢

转载自blog.csdn.net/weixin_43151099/article/details/85832250