项目积累——Strus、Hibernate
在Struts-config.xml中对ActionForm Bean的生命周期用scope进行定义,可用的选项有:pageContext(缺省)、request(常用)、session、application,分别对应于页作用域、请求域、会话域和应用程序域。
TestForm testForm = (TestForm) request.getAttribute( “testForm” );//不推荐使用
Struts标记库
Bean标记(Struts-bean.tld):用来在JSP页面中管理bean,Struts中的ActionForm Bean就可以通过bean标记来管理和使用。
逻辑标记(Struts-logic.tld):用来在JSP页面中控制流程,可以实现简单的判断分支和循环等流程控制。
HTML标记(Struts-html.tld):用来生成HTML标记、在表单中显示数据,使用会话ID对URL进行编码。
模板标记(Struts-template.tld):使用动态模板构造普通格式的页。
作为ActionForm Bean属性存在的String或者int等基本数据类型的数据,可以直接在页面中用<bean:write name="formName" property="property" /> 输出。在Struts资源定义文件中定义的资源可以用<bean:message key="key.name" />输出
用html标记显示ActionForm Bean属性时,Struts会自动转换属性值到对应的HTML标签中。如:自动设置Select的当前选项,自动checked对应值的radio标签等。
复选框的使用
Struts中用<html:multibox>标记来标识复选框,复选框对应于ActionForm Bean中的一个字符串数组类型的属性,例如:TestForm有一个属性为String[] mList,则用以下标记可以将用户的选择情况传递到服务器。
<html:multibox name="testForm" property="mList">1</html:multibox>
<html:multibox name="testForm" property="mList">2</html:multibox>
<html:multibox name="testForm" property="mList">3</html:multibox>
<html:multibox name="testForm" property="mList">4</html:multibox>
<html:multibox name="testForm" property="mList">A</html:multibox>
<html:multibox name="testForm" property="mList">B</html:multibox>
则在Action中对testForm.mList的各元素进行访问即可知道用户提交的选择情况,mList中只存储被选中的元素。例:一种可能的选择是 mList[0]=”2”,mList[1]=”4”,mList[2]=”A”。
注意:在JavaSctipt中的mList的使用方式与此不同,只能通过mList[i].checked的值来判断某选项是否被选择。对应于上例应该有:
mList[0].checked false
mList[1].checked true
mList[2].checked false
mList[3].checked true
mList[4].checked true
mList[5].checked false
ActionMapping对象帮助进行框架内部的流程控制,它们可将请求URI映射到Action类,并且将Action类与ActionForm bean相关联。ActionServlet在内部使用这些映射,并将控制转移到特定Action类的实例。返回一个ActionForward对象,其中包括响应转发的目标资源名称。
Hibernate
级联(cascade)在Hibernate映射关系中是个非常重要的概念。它指的是当主控方执行操作时,关联对象(被动方)是否同步执行同一操作。如对主控对象调用save-update或delete方法时,是否同时对关联对象(被动方)进行save-update或delete。
inverse:用于标识双向关联中的被动方一端。inverse=false的一方(主控方)负责维护关联关系。默认值: false
在 one-to-many 关系中,将many 一方设为主动方(inverse=false)将有助性能的改善。
VO经过Hibernate进行处理,就变成了PO。
在sessionFactory.openSession()中,hibernate会初始化数据库连接,与此同时,将其AutoCommit 设为关闭状态(false)
悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。乐观锁机制避免了长事务中的数据库加锁开销(操作员A和操作员B操作过程中,都没有对数据库数据加锁),大大提升了大并发量下的系统整体性能表现。
其中SwarmCache和JBossCache均提供了分布式缓存实现(Cache集群)。
Hibernate 的数据库查询机制。我们从查询结果中取出数据的时候,
用的最多的是两个方法:
Query.list();
Query.iterate();
ThreadLocal的独特之处,它会为每个线程维护一个私有的变量空间
public class TestServlet extends HttpServlet {
private ThreadLocal localSession = new ThreadLocal();
public void doGet( HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
localSession.set(getSession());
doSomething();
session.flush();
}
public void doSomething(){
Session session = (Session)localSession.get();
......//基于session的存取操作
}
}
项目积累——Strus、Hibernate的更多相关文章
- 项目总结SpringMVC+hibernate框架 web.xml 分析(2)
紧接 项目总结SpringMVC+hibernate框架 原理(MVC) applicationContext.xml 文件(3) 这一步讲解项目模块化的配置,项目中每个模块配置一个文件,命名规则为 ...
- (转载) android快速搭建项目积累
android快速搭建项目积累 2016-04-05 20:07 519人阅读 评论(0) 收藏 举报 分类: android优化(8) Rx技术(5) 版权声明:本文为博主原创文章,未经博主 ...
- eclipse 新建 maven 项目 添加 spring hibernate 的配置文件 详情
主要配置文件 pom.xml 项目的maven 配置文件 管理项目所需 jar 依赖支持 web.xml 项目的总 配置文件 :添加 spring和hibernate 支持 applicationC ...
- 项目积累——JAVA知识积累
调用天气: <iframe src="http://www.thinkpage.cn/weather/weather.aspx?uid=&c=CHXX0008&l=zh ...
- eclipse环境下基于已构建struts2项目整合spring+hibernate
本文是基于已构建的struts2项目基础上整合 spring+hibernate,若读者还不熟悉struts2项目,请先阅读 eclipse环境下基于tomcat-7.0.82构建struts2项目 ...
- spring 项目中使用 hibernate validator验证输入参数
1 hibernate validator 官方文档:https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_si ...
- 搭建项目Maven+springMVC+hibernate时,JUnit測试出现报ClassNotFoundException错误的解决
近期在搭建Maven+springMVC+hibernate项目,正常启动项目时一切正常.但JUNIT測试时出现报ClassNotFoundException错误,经过细致排查发现没有生成class文 ...
- 【Spring boot】第一个项目 Springboot + mysql + hibernate
今天公司要做一个小项目,好久没碰项目了(刷题好累...),听说spring boot很火,决定试一试.暂时就从mysql里面读数据好了,使用hiberante. 1.获取jar包. 从http://s ...
- 【angular5项目积累总结】遇到的一些问题以及解决办法
1.项目中字符串特别是\r\n,替换成br之后,在页面换行无法生效? 答:绑定元素 innerHTML. <div class="panel-body" [innerHTML ...
随机推荐
- 封装类的方式访问数据库(封装字符串、json)
<?php class DBDA { public $host="localhost";//服务器地址 public $uid="root";//用户名 ...
- jQuery 工具类库集锦
备注:待验证. ...................................以下待验证................................ 今天度娘发现这个内容,原来我一直做的都 ...
- AngularJs中的directives(指令part1)
一.指令的职责 指令的职责是修改DOM结构,并将作用域和DOM连接起来.即指令既要操作DOM,将作用域内的数据绑定到DOM节点上,又要为DOM绑定事件调用作用域内的对应的方法. 二.创建自定义指令 ...
- 【initrd】向虚拟文件系统initrd.img中添加驱动
虚拟文件系统:initrd-2.6.18-194.el5.img 希望添加网卡或SCSI等驱动 步骤: 解压initrd-2.6.18-194.el5.img: 添加*.ko文件,并修改init可执行 ...
- read,for,case,while,if简单例子
Read多用于从某文件中取出每行进行处理 $ cat read.sh #!/bin/bash echo "using read" cat name.txt | while read ...
- 在Linux中使用VS Code编译调试C++项目
最近项目需求,需要在Linux下开发C++相关项目,经过一番摸索,简单总结了一下如何通过VS Code进行编译调试的一些注意事项. 关于VS Code在Linux下的安装这里就不提了,不管是CentO ...
- 黄聪:PHP json_encode中文乱码解决方法
相信很多人在使用Ajax与后台php页面进行交互的时候都碰到过中文乱码的问题.JSON作为一种轻量级的数据交换格式,备受亲睐,但是用PHP作为后台交互,容易出现中文乱码的问题.JSON和js一样,对于 ...
- JQuery 常用方法基础教程
本文转自(http://www.cnblogs.com/Leo_wl/archive/2010/06/22/1762401.html) 对于学习使用jquery 的朋友,能用的到,简单的了解下jque ...
- RAC_Oracle集群服务安装RAC(案例)
2015-01-23 Created By BaoXinjian Thanks and Regards
- Oracle Erp常用网站
2014-01-01 Created By BaoXinjian