5、struct2的支持ModelDriver获得参数
1、在以前的代码中我们我们需要获得jsp传递过来的参数我们采用下面的方式获得
package com.weiyuan.test; /** * struct2的action可以不继承任何框架的接口 * 1、默认调用的是execute()方法 * */ public class LoginAction { 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; } public String execute() throws Exception{ System.out.println("execute is called"); System.out.println("execute is called" +username); System.out.println("execute is called"+password); if("admin".equals(username)&&"admin".equals(password)){ return "success"; }else{ return "error"; } } }
这样存在不好的问题,action做好处理业务类,不要把bean对象的操作放在action中,我们可以采用ModelDriver驱动模式,让action集成ModelDriver来实现
我们新建立一个实体类User对象
package com.weiyuan.test; 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; } }
然后修改我们的action,需要实现ModelDriver接口
package com.weiyuan.test; import com.opensymphony.xwork2.ModelDriven; /** * struct2的action可以不继承任何框架的接口 * 1、默认调用的是execute()方法 * */ public class LoginAction implements ModelDriven<User>{ private User user; public String execute() throws Exception{ System.out.println("execute is called"); if("admin".equals(getModel().getUsername())&&"admin".equals(getModel().getPassword())){ return "success"; }else{ return "error"; } } @Override public User getModel() { // TODO Auto-generated method stub if(user == null){ user = new User(); } return user; } }
这样就可以了
总结:
Struts2对ModelDriven模式的支持
Struts2可以采用类似于Struts1中的ActionForm方式收集数据,这样方式叫ModelDriven模式
如何实现模型驱动模式?
* 创建User
* Action需要实现ModelDriven接口
posted on 2017-12-12 15:26 luzhouxiaoshuai 阅读(144) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!