获得参数
目录
4.集合类型的参数(list, map) ,student>
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;