struts2+spring+hibernate项目总结

1、struts 2.0中的<s:textfield>标签

<s:textfieldlabel="%{getText('label.login.userName')}"

name="userName"

tooltip="%{getText('label.login.userName.toolTip')}"

id="userName"/>

label属性就指明了文本框前面的说明文本,没必要重新加入文字说明

2、在struts2.0的标签中,国际化信息要用"%{getText('label.login.userName')}"这种形式

3、<s:head/>放置在<head></head>之间

将会引入strutstag用到的一些css和js文件

需要注意的是,如果任何uitag或者ajaxtag的theme属性值是ajax

那么<s:head>必须有theme属性并且它的值是ajax

这将会额外地引入与ajax相关的js文件,比如dojo.js

如果没有引入,则会出现dojo不存在的错误

同时引入之后,可以在写javascript脚本时使用dojo框架,例如dojo,byId()

4、如果要自定义布局struts2.0中的uitag,则要设置uitag必须加上theme="simple"才能进行自定义布局

5、在结合dwr的过程中,在页面要导入的javascript脚本是

<scripttype='text/javascript'src='/tmsot/dwr/interface/login.js'></script>

<scripttype='text/javascript'src='/tmsot/dwr/engine.js'></script>

<scripttype='text/javascript'src='/tmsot/dwr/util.js'></script>

但是engine.js、util.js文件没必要copy

6、当进行用户名是否存在验证的时候,如果多次输入错误,则会出现多条错误提示,同时,即使输入的是正确的也不能进入,

<beanid="loginAction"class="com.lsxy.tmsoft.web.action.Login"

abstract="false"lazy-init="default"

  autowire="default" dependency-check="default" scope="prototype">

  <property name="userService">

<refbean="userService"/>

</property>

</bean>

如图配置后就表明每次从spring容器中获取action.Login的实例的时候就会new一个新对象,即我们所说的原型,spring中scope默认的是单态(singleton),当然针对web应用程序,还可以配置为request、session等范围。至于什么时候使用什么权限范围就要看应用程序的使用了,比如在多线程程序中,单态是否会对程序有所影响就需要考虑了。

7、利用c3p0的连接sqlserver过程

(1)新建一个init.property文件,放置在src下,代码如下

jdbc.type=mssql

jdbc.driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver

jdbc.url=jdbc:microsoft:sqlserver://localhost:1433;databasename=tmsoft

jdbc.username=sa

jdbc.password=

c3p0.acquireIncrement=3

c3p0.idleConnectionTextPeriod=900

c3p0.minPoolSize=2

c3p0.maxPoolSize=50

c3p0.maxStatements=100

c3p0.numHelperThreads=10

c3p0.maxIdleTime=600

c3p0.initialPoolSize=2

(2)在applicationContext.xml中配置如下代码

<beanid="placeholderConfig"

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<propertyname="location">

<value>classpath:init.properties</value>

</property>

 </bean>

 <bean id="dataSource"

class="com.mchange.v2.c3p0.ComboPooledDataSource"

destroy-method="close"dependency-check="default">

<propertyname="driverClass">

<value>${jdbc.driverClassName}</value>

</property>

<propertyname="jdbcUrl">

<value>${jdbc.url}</value>

</property>

<propertyname="user">

<value>${jdbc.username}</value>

</property>

<propertyname="password">

<value>${jdbc.password}</value>

</property>

<propertyname="acquireIncrement">

<value>${c3p0.acquireIncrement}</value>

</property>

<propertyname="initialPoolSize">

<value>${c3p0.initialPoolSize}</value>

</property>

<propertyname="minPoolSize">

<value>${c3p0.minPoolSize}</value>

</property>

<propertyname="maxPoolSize">

<value>${c3p0.maxPoolSize}</value>

</property>

<propertyname="maxStatements">

<value>${c3p0.maxStatements}</value>

</property>

<propertyname="numHelperThreads">

<value>${c3p0.numHelperThreads}</value>

</property>

<propertyname="maxIdleTime">

<value>${c3p0.numHelperThreads}</value>

</property>

</bean>

8、对struts.xml代码著一备注

<struts>

<constantname="objectFactory"value="spring"/>

<constantname="struts.custom.i18n.resources"

value="globalMessages"/>

<packagename="default"extends="struts-default">

<actionname="login"class="loginAction">

<resultname="SUCCESS">/admin/index.jsp</result>

<resultname="input">/login.jsp</result>

</action>

</package>

</struts>

要和spring结合请加<constantname="objectFactory"value="spring"/>

要国际化<constantname="struts.custom.i18n.resources"

value="globalMessages"/>

9、log4j的使用

(1)log4j的配置文件

#log4j.rootLogger=INFO,A1,A2

log4j.rootLogger=INFO,A1,A2

log4j.appender.A1=org.apache.log4j.ConsoleAppender

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-mm-dd HH:mm:ss, SSS} [%c] [%p] %m%n

log4j.appender.A2=org.apache.log4j.RollingFileAppender

log4j.appender.A2.File=c:\WebRoot.txt

log4j.appender.A2.MaxFileSize=10

log4j.appender.A2.MaxBackupIndex=10

log4j.appender.A2.layout=org.apache.log4j.PatternLayout

log4j.appender.A2.layout.ConversionPattern=%-d{yyyy-mm-ddHH:mm:ss,SSS}[%c][%p]%m%n

相关推荐