- 浏览: 171622 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
mncc:
太好了!!!Mark一下!不过貌似那个冒泡的还少个右下角吧? ...
Google Maps 图标地址收藏 -
ivorytower:
去年5月捡了命回来,现在不评论那些豆腐渣工程……
汶川地震留给我们什么?单单建什么地震纪念馆是没有用的 -
lgx2351:
wtusmchen 写道blog写的不错啊,以后多过来学习:) ...
js学习笔记2-函数 -
wtusmchen:
blog写的不错啊,以后多过来学习:)
js学习笔记2-函数
MVC框架中,控制器组件与模型组件需要相互传送数据,我们可以写个javaBean来保存。
ParamBean这个javaBean本质上是把数据放在hashtable中,并提供了存放和取出数据等方法。
代码如下:
public class ParamBean implements Serializable { // 操作员用户代码(用于日志显示) private String opr_code = ""; // 用户部门代码(用于日志显示) private String dep_code = ""; // 当前操作的菜单(用于日志显示) private String menu_code = ""; // 当前操作的说明(用于日志显示) private String op_desc = ""; // 返回代码(0表示成功) private int ret_code; // 错误信息 private String err_msg = ""; private Hashtable ht; private CachedRowSet crs; /** * 构造函数 */ public ParamBean() { opr_code = ""; err_msg = ""; ret_code = 0; ht = new Hashtable(); crs = null; } /** * 设置信息 */ public void set_info(String opr_code, String dep_code, String menu_code, String op_desc) { this.opr_code = opr_code; this.dep_code = dep_code; this.menu_code = menu_code; this.op_desc = op_desc; } /** * 添加参数到哈希表 */ public void add_param(String param_name, Object param_value) { if (param_name == null || param_value == null) return; param_name.trim(); if (param_name.equalsIgnoreCase("")) return; this.ht.put(param_name, param_value); } /** * 从参数哈希表中获取参数 */ public Object get_param(String param_name) { if (param_name != null) { param_name.trim(); if (!param_name.equalsIgnoreCase("")) { return ht.get(param_name); } } return null; } /** * 从参数哈希表中删除参数 */ public void remove_param(String param_name) { if (param_name != null) { param_name.trim(); if (!param_name.equalsIgnoreCase("")) { ht.remove(param_name); } } } /** * 取哈希表中的参数个数 */ public int get_param_count() { return this.ht.size(); } /** * 清空参数(参数无须传回客户端) */ public void clear_param() { this.ht.clear(); } /** * 设置CRS */ public boolean set_crs(ResultSet rs) { boolean ok = false; try { crs = new CachedRowSetImpl(); crs.populate(rs); ok = true; } catch (Exception e) { e.printStackTrace(); } return ok; } /** * 设置错误信息,同时置ret_code为-1 */ public void setErr_msg(String err_msg) { this.ret_code = -1; this.err_msg = err_msg; } /** * 设置成功信息 */ public void setSuccess() { this.ret_code = 0; this.err_msg = ""; } /** * 判断操作是否成功 */ public boolean success() { return this.ret_code == 0; } public String getDep_code() { return dep_code; } public void setDep_code(String dep_code) { this.dep_code = dep_code; } public CachedRowSet getCrs() { return crs; } public void setCrs(CachedRowSet crs) { this.crs = crs; } public Hashtable getHt() { return ht; } public void setHt(Hashtable ht) { this.ht = ht; } public String getMenu_code() { return menu_code; } public void setMenu_code(String menu_code) { this.menu_code = menu_code; } public String getOp_desc() { return op_desc; } public void setOp_desc(String op_desc) { this.op_desc = op_desc; } public String getOpr_code() { return opr_code; } public void setOpr_code(String opr_code) { this.opr_code = opr_code; } public int getRet_code() { return ret_code; } public void setRet_code(int ret_code) { this.ret_code = ret_code; } public String getErr_msg() { return err_msg; } }
以上代码都很好理解,主要是add_param(),set_crs()方法主要是把数据库执行查询后得到的ResultSet通过CachedRowSetImpl的populate方法放进CachedRowSetImpl里,至于为什么要放到CachedRowSetImpl里处理,参看些jdbc编程方面的知识。(TO-DO)
写好这个javaBean后,在控制器组件里可以把在前台传进来的值通过add_param()方法放进来,如下:
param_bean param = new param_bean(); String dep_code = (String)request.getSession().getAttribute("LOGIN_USER_DEP"); param.add_param("DEP_CODE", dep_code);
在模型组件里可以根据传进来的这个param来取到值,进行一些数据库的操作,如下:
public param_bean loginAuth(param_bean param) throws java.lang.Exception{ String user_code = (String)param.get_param("USER_CODE"); param.clear_param(); String sql = ".."; sqlExecQuery(param,sql); return param; } /** * 执行查询语句的公共方法 * @param param * @param sql */ private void sqlExecQuery(param_bean param,String sql) throws Exception{ database_bean db = get_database(); param.ret_code = -1; try{ param.set_crs(db.execute_query(sql)); param.ret_code = 0; param.err_msg = ""; db.close(); }catch(Exception ex){ param.ret_code = -1; param.err_msg = ex.getMessage(); ex.printStackTrace(); } }
完成相应的数据库操作后,在控制器里进行如下判断,并对数据库的查询结果放到request进行更加复杂的处理,如下:
if (param.ret_code == 0) { request.setAttribute("PARAM_CRS", param.crs); } else { System.out.print(param.err_msg); throw new Exception(param.err_msg); }
到这里,MVC三层结构中在在控制器组件与模型组件之间传送数据大致介绍完成了:)
发表评论
-
判断一个url是否连接正常
2012-01-13 19:45 180try { ... -
Hibernate+Spring+Struts2+ExtJS开发CRUD功能
2012-01-06 10:03 0http://blog.csdn.net/myloon/art ... -
安装Oracle运行pl/sql developer(转)
2011-06-09 16:48 944Sql客户端中,虽然最便捷的是万能而且轻量无比的Sql Wor ... -
boss部署时出现的 Bad version number in .class file错误
2011-03-11 17:32 975http://blog.sina.com.cn/s/blog_ ... -
ireport制作报表
2011-01-19 16:34 1161ireport制作报表好早以前用过,过了一段时间再做,发现都忘 ... -
Eclipse+MyEclipse安装及环境配置
2010-12-14 10:22 921为了方便更多的人,写了这个! MyEclipse是 ... -
上传下载总结
2010-07-19 11:40 172这里的上传是上传到数据库的blob字段中。前台的代码省略 ... -
对java对象和jsp的理解
2010-07-19 11:10 0一:对jsp的理解 jsp其实就是servlet ... -
Eclipse快捷键
2010-06-19 16:20 816编辑相关快捷键 Eclipse的编辑功能非常强大 ... -
eclipse快捷键
2010-05-15 11:02 767作用域 功能 快捷键 ... -
关于java的一些公共方法总结(不断更新)
2010-03-05 11:06 239工作总结,不说多,直接上代码 public class Ut ... -
HttpServletResponse的处理封装(将不断更新)
2010-03-05 11:04 370工作总结,不说多,直接上代码: public class H ... -
HttpServletRequest的处理封装(将不断更新)
2010-03-05 11:03 1661不多说了,时常工作整理的,直接上代码吧,欢迎大家多提意见。 ... -
对java web工程的个人理解
2010-03-02 10:50 4031、在多工程下对session的理解: 一个浏览器打开一 ... -
个人实施工作总结(只是个人实施工作总结)
2010-01-21 16:31 693这次升级出了好多问题,记录如下: 一、 更新了high ... -
基于struts的web应用开发总结(三)
2010-01-13 16:08 2241.应用开发常常从数据库取出数据来处理。而数据库的数据有可能是 ... -
json在服务端取值
2010-01-07 15:19 1032我们一般在servlet里返回一个json的toString( ... -
action端发请求并且处理
2010-01-07 15:13 120我们一般是在前端发请示,然后在struts的action端来处 ... -
修改Eclipse/MyEclipse项目的默认编码(转)
2009-12-26 15:35 3490... -
servlet端取前台参数值方法探讨
2009-12-20 21:24 636servlet取前端传过来的参数值,我们一般用HttpServ ...
相关推荐
基于规则的策略和具有前瞻性的模型预测控制器。结果表明 经过培训的代理能够在系统的终身设置中超越这两个基准 动态是随着时间而变化的。 1. 介绍 微电网是由灵活消费、分布式发电(可再生能源)组成的小型电力网络 和...
18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
本便签应用采用 MVC(Model-View-Controller)架构,将应用的业务逻辑、用户界面和数据...Controller - 控制器层:负责管理用户与应用之间的交互,接收用户的输入并处理对应的业务逻辑,包括点击事件处理、数据传输等。
采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可...
使系统的安装与升级更容易 在BEA TUXEDO 的三层结构组件软件模型下开发的应用程序以服务器组件和客户组件 为安装、升级的单位,当一个组件需要更新时,管理人员甚至能够在运行系统不停机的 情况下完成系统的升级,这...
使系统的安装与升级更容易 在BEA TUXEDO 的三层结构组件软件模型下开发的应用程序以服务器组件和客户组件 为安装、升级的单位,当一个组件需要更新时,管理人员甚至能够在运行系统不停机的 情况下完成系统的升级,这...
4.5.1 数据交换与传输协议的分离 4.5.2 数据格式和传输介质 4.5.2.1 FORMATETC结构 4.5.2.2 STGMEDIUM结构 4.5.3 数据对象和IDataObject接口 4.5.4 MFC对统一数据传输的支持 4.5.4.1 COleDataSource类 4.5.4.2 ...
考虑到系统中计算机控制器的重要作用和状态,建立了系统的可靠性模型,利用Markov过程理论证明了与通常网络化控制系统相比,基于智能代理技术有双控制器的计算机网络化控制系统具有更高的可靠性和安全性。
它表示在控制器组件或任何其他相关业务逻辑之间传输的数据; 建于 后端: 用于创建处理路由和处理来自客户端的请求。 -节点JS司机为MySQL。 前端 很棒CSS预处理器。 使用JavaScript转换CSS的工具。 模板引擎...
sqoop 数据迁移⼯具,⽤来在不同数据存储软件之间进⾏数据传输的开源软件 DataX 阿⾥巴巴开源的离线数据同步⼯具,⽤于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间...
数据可视化智能软件主要性能指标 1) 分布式实时数据库 A 软件应采用多线程的处理机制,分布式组件的设计支持负载均衡体系。 B 内置动态优化功能,可保证用户在访问一个窗口、鼠标动作等所产生的数据交互的快速 响应...
23.6.6 创建自动化控制器 740 23.7 高级自动化技术 745 23.7.1 自动化事件 745 23.7.2 自动化集合 754 23.7.3 类型库中新的接口类型 760 23.7.4 交换二进制数据 761 23.7.5 COM的语言支持 763 23.8 MTS 766 23.8.1 ...
JSP程序设计教程 第1章 JSP概述 第2章 JSP开发基础 第3章 JSP语法 第4章 JSP内置对象 第5章 JavaBean技术 ...视图组件,控制器,业务逻辑组件之间没有代码的联系。 16. Struts的MVC与标准MVC的不同点
Java及⼤数据学习路线 1.Java学习路线 1.1JavaSE Java基础 Java8新特性 数据库MySQL与SQL语⾔ JDBC 1.2JavaWeb HTML基础与CSS JavaScript DOM 与 jQuery XML与Tomcat HTTP协议 服务器端组件Servlet JSP EL表达式 ...
JMF的主要应用功能之一是多媒体数据流在网络中的实时传输,其RTP包中提供的RTP包中提供的RTPManager(RTP管理器)、TrackContol(轨道控制器)、SendStream(发送数据流)、ReceiveStream(接收数据流)、...
5.9 消息与事件之间的关系 128 5.10 总结 129 第6章 代码标准文档 130 6.1 一般的源代码格式规则 130 6.1.1 缩进 130 6.1.2 边距 130 6.1.3 begin...end 130 6.2 Object Pascal 131 6.2.1 括号 131 6.2.2 保留字和...
Group) 理解删除一个组的影响 域控制器(Domain Controller)简介 成员服务器(Member Server) 备份域控制器(Backup Domain Controller)的升级 将一个主域控制器降级为备份域控制器 把成员服务器升级为域控制器 域控制...
601.在OSI参考模型中,各功能层之间的统一接口称为边界层。边界层使得网络模型能与上下层交流和共享相关 的信息,这些头信息包含有供接收栈的对等层阅读和处理的控制信息。 A.正确 B.错误 正确答案B 602.下面哪种...
16.2.3在应用程序之间传送数据576 16.2.4错误处理581 16.2.5用户接口组件584 16.2.6兼容性问题587 16.2.7注册组件591 16.2.8关闭服务器592 16.2.9 Persistence593 16.3创建ActiveX DLL服务器597 16.3.1 VBIDE中的...