Struts2是一个很优秀的表现层和控制层框架,他的核心模块采用过滤器和拦截器实现,其中数据封装,我们学过普通属性封装和模型驱动封装,使用上语法和规则就不说了,这里说一个普通属性封装和模型驱动封装结合使用造成的一个bug:下面详细说一下:
实体类:
public class MyEntity{
private String name;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
Action类
public class TestAction extends ActionSupport implements ModleDriven<MyEntity>{
private String name;
private MyEntity mode=new MyEntity();
public MyEntity getMode(){
return mode;
}
public void setName(String name){
this.name=name;
}
public String test(){
System.out.println(mode);//打印有数据
System.out.println(name);//---打印为空null--
return "test";
}
}
页面表单:
<form action="">
<input name="name"/>
</form>
出现的问题是,上面红色字体的结果,也就是说,如果普通属性和模型驱动的实体类如果有属性名是一样的,页面提交过来的数据只会封装到模型驱动的实体对象,普通属性没有数据
|
|