摘要: 使用:package edu.yzu.log;import java.io.IOException;import java.util.Properties;import org.apache.log4j.BasicConfigurator;import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator;publ... 阅读全文
posted @ 2010-05-03 17:42 沉兮 阅读(332) 评论(0) 推荐(0)
摘要: 文件的配置。在web.xml中配置dwr的拦截器,为一个Servlet,配置如下: <servlet> <servlet-name>dwrServlet</servlet-name> <servlet-class> org.directwebremoting.servlet.DwrServlet </servlet-class> <... 阅读全文
posted @ 2010-05-03 17:41 沉兮 阅读(406) 评论(0) 推荐(0)
摘要: 声明式的事务管理(Declarative transaction management): <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>oracle.jdbc.OracleDriver... 阅读全文
posted @ 2010-05-03 17:38 沉兮 阅读(282) 评论(0) 推荐(0)
摘要: 事务的一些属性transaction (ACID): A : 原子性 : C : Consistent ( 一致性 ) I : Isolate ( 隔离特性 ) D : Durable ( 持久性 ) 事务属性 : 1, 隔离级别 . |- ISOLATION_DEFAULT |- ISOLATION_READ_UNCOMMITED ---> 脏读 |- ISOLATION_READ... 阅读全文
posted @ 2010-05-03 17:37 沉兮 阅读(293) 评论(0) 推荐(0)
摘要: spring 对jdbc的支持提供了一个JDBCTemplate类,其中有两个模板方法:其中的两个方法很有用:spring 数据源的配置使用apache提供的dbcp数据源的配置在spring 配置文件中加入如下代码: <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method=... 阅读全文
posted @ 2010-05-03 17:36 沉兮 阅读(527) 评论(0) 推荐(0)
摘要: BeanPostProcessor接口的使用BeanPostProcessor接口用在bean生成后将放入ApplicationContext前进行一些必要的处理,它有两个方法,分别在调用bean配置的init-method前后执行(如果配置了的话),本接口的实现类常常结合动态代理生成bean的代理类型:class MyProxyClass { private Object target; pub... 阅读全文
posted @ 2010-05-03 17:35 沉兮 阅读(1020) 评论(0) 推荐(0)
摘要: 对bean属性的注入过程中,如果一些类型不能注入,则可以类型转换,自定义转换该类型的转换器,如上面的birthday属性是日期性的,spring 不能自动注入该类型,则自定义转换器如下:public class myDateEditor extends PropertyEditorSupport { @Override public void setAsText(String text) thro... 阅读全文
posted @ 2010-05-03 17:27 沉兮 阅读(351) 评论(0) 推荐(0)
摘要: 1. 属性的注入配置Bean文件的配置,即为bean的各属性赋值<bean id="sone" class="edu.yzu.entity.Student" init-method="initialMethod" parent="sbean" ><!—- init-method指定了该bean类初始化后用来验证属性是否合法,该方法会在属性设置结束后调用 ,Parent... 阅读全文
posted @ 2010-05-03 17:26 沉兮 阅读(1100) 评论(0) 推荐(0)
摘要: drop table tb_orderitem cascade constraint;create table tb_user(id integer primary key,userName varchar2(20) not null,userPwd varchar2(20) not null,regDate date default sysdate);insert into tb_user va... 阅读全文
posted @ 2010-05-03 17:25 沉兮 阅读(254) 评论(0) 推荐(0)
摘要: hibernate可以为业务属性配置的查询为 join select 为集合属性配置的查询 join select subselect <class name="Department" table="tb_Department"> <id name="id" column="id"> <generator class="increment" /> </id... 阅读全文
posted @ 2010-05-03 17:23 沉兮 阅读(749) 评论(0) 推荐(0)
摘要: hibernate乐观锁的实现版本号比较在需要加锁表的对应的实体类上加入一个整形的属性用于记录本次查询的实体对应数据库中的版本号。在配置文件中加入对应的信息:(在id标签下面添加)<version name=”ver” column=”version”/>即实体属性与数据库的的version字段对应。如果hibernate对实体进行更新的... 阅读全文
posted @ 2010-05-03 17:22 沉兮 阅读(214) 评论(0) 推荐(0)
摘要: 离线查询方式public List<Product> getProducts(DetachedCriteria dc) { Session session=HibernateSessionFactory.getSessionFactory().getCurrentSession(); Criteria criteria=dc.getExecutableCriteria(session)... 阅读全文
posted @ 2010-05-03 17:21 沉兮 阅读(485) 评论(0) 推荐(0)
摘要: 所谓组件映射即为当一个实体类中有一个属性为自定义的类,但又没有oid,即数据库中没有这个类的对应表。也称这种属性为值对角或实体类的组件。如User类中有一个Contact的引用,而引用中包含各种联系信息。要把这个组件的信息一起存入User对应的表中。这样的好处是可以对Contact进行重复利用等。映射方式:<class name="User" table="tb_User"><i... 阅读全文
posted @ 2010-05-03 17:19 沉兮 阅读(481) 评论(0) 推荐(0)
摘要: 一棵继承树映射到一张表的情况 <!-- Animal为父类 Dog与Pig为子类. 这种映射的不足是所有子类的属性不能为not-null="true",因为这样的话会在生成表的语句时设置对应列不能为空 那样在插入其它类型时会出现错误。也就是这种映射在建表时不能为子类的字段指定为非空对于查询,显然用load在默认是不支持多态查询的,因为load默认查询时只是先加载相应的Id,而id不能反映它... 阅读全文
posted @ 2010-05-03 17:18 沉兮 阅读(249) 评论(0) 推荐(0)
摘要: 多对多的关系映射create table tb_teacher(id number primary key,name varchar2(50) not null);create table tb_student(id number primary key,name varchar2(50) not null);create table tb_thtost(th_id number referenc... 阅读全文
posted @ 2010-05-03 17:16 沉兮 阅读(177) 评论(0) 推荐(0)
摘要: 一对一的两种配置l 共享主键方式create table tb_person( id integer primary key , name varchar2( 60 ) not null, birthday date , email varchar2( 60 ) not null, phone varchar2( 10 ) );create table tb_passport( id intege... 阅读全文
posted @ 2010-05-03 17:12 沉兮 阅读(235) 评论(0) 推荐(0)
摘要: 将struts2-spring-plugin-2.0.14.jar文件拷入lib目录下面。如果不用最好不要拷,因为在这个jar包下面的struts-plugin.xml会自动被加载,为什么会自动被加载,因为在default.properties中有指定。若不用spring而将这个jar包放在lib目录下面,则容易出现错误,因为在加载时会初始化很多东西,需要用到spring中的很多jar包,则此时必... 阅读全文
posted @ 2010-05-03 17:07 沉兮 阅读(822) 评论(0) 推荐(0)
摘要: 要进行重复提交验证的表单内要加上<s:token />的struts的标签。这个标签的作用就是在页面生成时会生一个标识符,struts2会自动将此标识符放在session中,当此表单提交时,当表单成功提交,即返回的为success时,struts2会自动将session中的标签符清空,将第二次再提交时struts会检查此值是否为空,若为空则返回invalid.token值,此时stru... 阅读全文
posted @ 2010-05-03 17:06 沉兮 阅读(736) 评论(0) 推荐(0)
摘要: l Struts2的异常处理与struts1很类似,使用方法与配置都很类似。简单示例:<!-- 异常处理就这么简单,比struts1.x人性化很多,主要为,国际化在程序中指出,这样一个exception的配置可以出现不同种异常信息,而struts1.x则不能。exceptin-mapping 的result属性对应于action的result配置,当action的result的name与ex... 阅读全文
posted @ 2010-05-03 17:05 沉兮 阅读(294) 评论(0) 推荐(0)
摘要: Struts2国际化前要进行必要的配置,在struts.xml中配置<constant name="struts.custom.i18n.resources" value="messages,information"></constant>上面的配置指定了全局国际化文件的头名称:如中国为:messages_zh_CN.properties 英语为:messages_en_U... 阅读全文
posted @ 2010-05-03 17:04 沉兮 阅读(841) 评论(0) 推荐(0)
摘要: 下载action的简单写法package edu.yzu.action;import java.io.InputStream;import java.io.UnsupportedEncodingException;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;@... 阅读全文
posted @ 2010-05-03 17:03 沉兮 阅读(423) 评论(0) 推荐(0)
摘要: l Struts2的文件上传是基于第三方组件的,需要包含相应jar包,其中以apache的commons-io.jar与commons-fileupload.jar使用最多。l 文件上传action的简单写法package edu.yzu.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOut... 阅读全文
posted @ 2010-05-03 17:02 沉兮 阅读(367) 评论(0) 推荐(0)
摘要: l 权限管理。当然也是很重要的应用package edu.yzu.interceptor;import java.util.Map;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.Metho... 阅读全文
posted @ 2010-05-03 17:01 沉兮 阅读(336) 评论(0) 推荐(0)
摘要: l Struts2的监听器,并没有多大用处,但也有必要知道 :PreResultListener监听器,即在返回result之前监听action。这result即为每个action的业务方法的返回结果:所谓的结果返回之前,即将拦截器栈层层调用后,调用action的业务方法,其会返回一个字符串结果。此时这个监听器发挥作用。监听后再返回拦截器栈!监听器的使用要注册自定义方法:package edu.y... 阅读全文
posted @ 2010-05-03 16:59 沉兮 阅读(1056) 评论(1) 推荐(0)
摘要: l 自定义的拦截器的方法有三种:实现Interceptor接口(实现intercept) 注意:intercept的参数ActionInvocation必须调用invoke方法后才后继续执行下面的拦截器,直到所有的拦截器都执行完后再执行所拦截action的业务方法,最后执行下面的程序,类似一个栈,所以有拦截栈的说法。其返回的字符串即为action类的业务方法返回的值package edu.yzu.... 阅读全文
posted @ 2010-05-03 16:59 沉兮 阅读(621) 评论(0) 推荐(0)
摘要: l 当类型转换成功以后,struts2将进行输入验证若要进行输入验证则你的action必须继承ActionSupport类,实现其validate方法在方法中调用addFiledError方法为验证失败的字段加上错误信息注意若是一旦有验证失败的信息,struts会自动转入配置文件input中,若没有则出错!若类型转换时就出错,也会转回input指定的页面并产生一条信息也加入到FiledError中,在input指定页面中可以用struts标签<s:fielderror></s:fielderror>读出所有转换失败的信息与验证失败的信息<s:fielderror& 阅读全文
posted @ 2010-05-03 16:58 沉兮 阅读(1058) 评论(0) 推荐(0)
摘要: 当用户自定义Action继承ActionSupport时,可以使用ActionSupport很多功能比如validate() 若在validate函数中调用addFieldError(String fieldName,String errorMessage)方法的话,既表示表单验证出错,会转向相应action中的 result name=”input” 所指定的页面,一般我... 阅读全文
posted @ 2010-05-03 16:56 沉兮 阅读(358) 评论(0) 推荐(0)
摘要: Struts2的基本配置加载JAR包,只要将必要的包加入就可以了l commons-logging-1.0.4.jarl freemarker-2.3.8.jarl ognl-2.6.11.jarl struts2-core-2.0.14.jarl xwork-2.0.7.jar 当然版本可能有点变化,我用的是struts-2.0.14配置过滤器,相对于struts1中的ActionServlet... 阅读全文
posted @ 2010-05-03 16:55 沉兮 阅读(209) 评论(0) 推荐(0)
摘要: 在页面直接使用titles标签先引入标签:<%@taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>将模板页面要代替的内容用标签占位:<tiles:insert attribute="content"></tiles:insert>在另外一页面将模板页与内容页整合:<tiles... 阅读全文
posted @ 2010-05-03 16:52 沉兮 阅读(479) 评论(0) 推荐(0)
摘要: Struts的令牌机制在转入提交表单的action中要调用saveToken方法,这样将会在session中放入令牌,并将生成的令牌放入表单提交页面,一般放在一个隐藏域中,用el表达式给其符值,且隐藏域的名称为固定的org.apache.struts.action.TOKEN 这可以从Globals.class中找到。在处理表单提交的action中要调用isTokenValid方法来判断是否是第一... 阅读全文
posted @ 2010-05-03 16:50 沉兮 阅读(221) 评论(0) 推荐(0)
摘要: 时间类型先set验证时出现问题查了很多资料,基本上没有好的解决办法,struts给的示例中用动态表单来接收数据,而接收时间的字段也是字符串类型,这样就避免了转换,并且可以进行格式验证。当这个动态表单数据传入action时,按需要再将这个字符串转成时间类型。由此也算是struts的ActionForm的一个硬伤。对于没有时间类型的form表单用静态actionform可以,若有则最好用动态。其实其本... 阅读全文
posted @ 2010-05-03 16:48 沉兮 阅读(196) 评论(0) 推荐(0)
摘要: 文件上传 <!-- form的配置,很简单,但是很必要,好像只能用动态表单。另外不定数量的文件上传并不太好解决 --> <form-bean name="photoForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="photo1" type="org.apac... 阅读全文
posted @ 2010-05-03 16:45 沉兮 阅读(521) 评论(0) 推荐(0)
摘要: 1. 基本使用基本配置<!-- 若要进行表单验证则要使用用DynaValidatorForm或者DynaValidatorActionFrom. 前者在Validation.xml中匹配的是action的name属性,即可以认为在validation.xml中 对此form进行验证,而后者匹配的是action的path属性。即对action进行验证,由此可见两的适用范围。 若不必要进行验证... 阅读全文
posted @ 2010-05-03 16:43 沉兮 阅读(296) 评论(0) 推荐(0)
摘要: 一.使用验证框架(输入验证时需要用到如下两个jar包commons-validator.jar 与oro.jar.)注意:要进行框架验证的Form必须继承自ValidatorForm,ValidatorActionForm。以及使用动态的DynaValidatorForm和DynaValidatorActionForm。其中ValidatorForm与DynaValidatorForm在验证文件的... 阅读全文
posted @ 2010-05-03 16:42 沉兮 阅读(321) 评论(0) 推荐(0)
摘要: 国际化要对就资源文件,这必须在struts-config.xml中指定,与struts2中则不需。配置方法: <message-resources parameter="edu.yzu.resources.messages" ></message-resources> <message-resources parameter="edu.yzu.resources.in... 阅读全文
posted @ 2010-05-03 16:40 沉兮 阅读(463) 评论(0) 推荐(0)
摘要: Strut1.x的异常处理蛮简单。配置时分为全局,异常与局部异常。对于一个action若发生异常则先查找本身action是否有相应异常的配置,若无则查找全局异常配置,还没有则报错。异常处理一定会用到资源文件局部配置如下<!-- key指定信息在资源文件中的键值 type指发生的异常类型。 bundle使用哪个资源文件,不配置则使用默认的资源文件 --> <exception k... 阅读全文
posted @ 2010-05-03 16:39 沉兮 阅读(670) 评论(0) 推荐(0)
摘要: <!-- struts1.x的action配置都很简单,继承自Action的自定义Action配置如下,当要进生输入校验时必设置validate为true,input 指定验证出错后要返回的页面--> <action path="/register" type="edu.yzu.action.UserAction" input="/register.jsp" validate="... 阅读全文
posted @ 2010-05-03 16:38 沉兮 阅读(3881) 评论(0) 推荐(0)
摘要: <!-- struts1.x的action配置都很简单,继承自Action的自定义Action配置如下,当要进生输入校验时必设置validate为true,input 指定验证出错后要返回的页面--> <action path="/register" type="edu.yzu.action.UserAction" input="/register.jsp" validate="... 阅读全文
posted @ 2010-05-03 16:31 沉兮 阅读(556) 评论(0) 推荐(0)
摘要: 想写写博客,希望能交到志趣相投的朋友!! 阅读全文
posted @ 2010-05-03 16:27 沉兮 阅读(94) 评论(0) 推荐(0)