标签:
1.分层体系架构
例子:
LoginService
package com.liule.service; public interface LoginService { public boolean IsLogin(String username,String password); }
LoginSeriverImp
package com.liule.impl; import com.liule.service.LoginService; public class LoginSeriverImpl implements LoginService { @Override public boolean IsLogin(String username, String password) { if("hello".equals(username)&& "world".equals(password)) { return true; } return false; } }
LoginAction.java
LoginSeriverImpl ls = new LoginSeriverImpl(); public String execute() throws Exception { if(ls.IsLogin(username,password)) { return SUCCESS; } return INPUT; }
struts.xml
<action name="login" class="com.liule.action.LoginAction"> <result name="success">/servlet.jsp</result> <result name="input">/login.jsp</result> </action>
2.模型驱动(Model Driven):对象与属性都是后台自动设置成功,实现ModelDriven<T>接口
属性驱动(Property Driven):对象与属性都是需要手动设置,以前使用的
LoginAction
package com.liule.action; import com.liule.bean.User; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; public class LoginAction2 extends ActionSupport implements ModelDriven<User> { private User user = new User(); @Override public String execute() throws Exception { return SUCCESS; } @Override public User getModel() //返回自己定义的模型 { return user; } }
属性驱动与模型模式的区别:
1)属性驱动灵活,准确:模型驱动不灵活,因为很多时候,页面所提交过来的参数不属于模型中的属性,也就是说页面所提交过来的参数与模型中的属性并不一致,这是很常见的情况。
2)模型驱动更加符合面向对象的编程风格,使得我们获得的是对象而不是一个个离散的值。
推荐使用:属性驱动!
标签:
原文地址:http://www.cnblogs.com/liu-Gray/p/4941400.html