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

获得参数

目录

获得参数

1. Action和Model相结合

2.Action和Model分离

3.实现一个ModelDriver接口

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

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

自动转换

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


1. Action和Model相结合

action层:

private String uname;
private String upasswd;

 

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;

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值