模型驱动:把数据跟处理分开,用单独的JavaBean封装数据(不管是请求的,还是返回的,可以在一起封装),把处理类完全孤立成一个框架,用这个模型作为灵魂在驱动整个骨架。
属性驱动--你把一大堆属性搞到你的处理类里面,完全可以。方便、快捷而且灵活,不过结构清晰度当然就不好了。
1.struts2实现模型驱动的简单登陆
User(bean)类:
public class User
{
private String username;
private String password;
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
}
jsp页面:
LoginAction2:(继承ActionSupport类并实现ModelDriven)
public class LoginAction2 extends ActionSupport implements ModelDriven<User>
{
private User user = new User();
public User getModel()
{
return user;
}
@Override
public String execute() throws Exception
{
return SUCCESS;
}
}
struts.xml的配置:
<action name="login2" class="com.erzong.struts2.LoginAction2">
<result name="success">/result.jsp</result>
</action>
result.jsp:
<body>
username:${requestScope.username }<br>
password:${requestScope.password }<br>
</body>
2. 属性驱动与模型驱动的比较
1)属性驱动灵活,准确;模型驱动不灵活,因为很多时候,页面所提交过来的参数并不属于模型中的属性,也就是说页面所提交过来的参数与模型中的属性并不一致,这是很常见的情况。
2)模型驱动更加符合面向对象的编程风格,使得我们获得的是对象而不是一个个离散的值。
3.推荐使用属性驱动来进行编写