20090324工作日志
1.SqlServer2005用的Jar包,可以向下兼容(通俗来说就是:现在用sqlserver2005做的项目完全移植在sqlserver2000上时,什
么都不用改就能用)。
hibernate.cfg.xml中主要代码如下:
?2.总结一下用过的几个hibernate属性的用法:
①hibernate.show_sql------值有true or false。
说明:hibernate.show_sql?控制台输出sql语句:控制台不输出sql语句;
②hibernate.hbm2ddl.auto------用过的值有create or update。
说明:前提是数据库里已有该数据库,hibernate.hbm2ddl.auto值为create时,无论该数据库是否有内容,重新生成;
值为update时,就是更新该数据库中的内容了。3.struts2中使用session的方法:
在继承了ActionSupport的类里,通过“ServletActionContext.getRequest().getSession().setAttribute("username", "peixian");”
将内容放进去。在页面里用“${sessionScope.username }”就可以得到了。4.struts2框架中给我们提供了很多实用的Interceptor,它的定义上面已经给出,它的具体功能如下:
????????? timer:记录Action执行的时间,并做为日志信息输出;
????????? logger:在日志信息中输出要执行的Action信息;
????????? chain:将前一个执行结束的Action属性设置到当前的Action中。它被用在ResultType为“chain”指定结果的Action中,该结
果Action对象会从OgnlValueStack中获得前一个Action对应的属性,它实现Action链之间的数据传递;
????????? static-params:将xwork.xml配置文件里定义的Action参数,设置到对应的Action中。Action参数使用<param />标签,是
<action />标签的直接子元素。我们这里定义的Action类必需实现com.opensymphony.xwork.config.entities. Parameterizable接
口;
????????? params:将Request请求的参数设置到相应Action对象的属性中,用户注册例子用到过这个拦截器;
????????? model-driven:如果Action实现ModelDriven接口,它将getModel()取得的模型对象存入OgnlValueStack中;
????????? component:激活组件功能支持,让注册过的组件在当前Action中可用,即为Action提供IoC(依赖倒转控制)框架的支
持;
????????? token:核对当前Action请求(request)的有效标识,防止重复提交Action请求(request)。
????????? token-session:功能同上,但是当提交无效的Action请求标识时,它会将请求数据保存到session中。
????????? validation:实现使用xml配置文件({Action}-validation.xml)对Action属性值进行验证,详细请看后面介绍的验证框架。
????????? workflow:调用Action类的验证功能,假设Action使用ValidationAware实现验证(ActionSupport提供此功能),如果验证
没有通过,workflow会将请求返回到input视图(Action的<result />中定义的)。
????????? servlet-config:提供Action直接对HttpServletRequest或HttpServletResponse等JavaServlet api的访问,Action要实现相应
的接口,例如:ServletRequestAware或ServletResponseAware等。如果必需要提供对JavaServlet api的访问,我们建议使用
ServletActionContext,在前面ActionContext章节中有介绍。
????????? prepare:在Action执行之前调用Action的prepare()方法,这个方法是用来准备Action执行之前要做的工作。它要求我们的
Action必需实现com.opensymphony.xwork. Preparable接口
conversionError:用来处理框架进行类型转化(Type Conversion)时的出错信息。它将存储在ActionContext中的类型转化
(Type Conversion)错误信息转化成相应的Action字段的错误信息,保存在堆栈中。根据需要,可以将这些错误信息在视图中
显示出来。
5.如何自定义一个拦截器?
自定义一个拦截器需要三步:
1 自定义一个实现Interceptor接口(或者继承自AbstractInterceptor)的类。
2 在struts.xml中注册上一步中定义的拦截器。
3 在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截。
Interceptor接口声明了三个方法:public abstract class AbstractInterceptor implements Interceptor { public void init() { } public void destroy() { } public abstract String intercept(ActionInvocation invocation) throws Exception;}?在不需要编写init和destroy方法的时候,只需要从AbstractInterceptor继承而来,实现intercept方法即可。