struts2+spring+hibernate项目总结

1、struts 2.0中的<s:textfield>标签
   <s:textfield label="%{getText('label.login.userName')}"
       name="userName"
       tooltip="%{getText('label.login.userName.toolTip')}"
       id="userName" />

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


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


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

将会引入struts tag用到的一些css和js文件
 需要注意的是,如果任何ui tag或者ajax tag的theme属性值是ajax
 那么<s:head>必须有theme属性 并且它的值是ajax
 这将会额外地引入与ajax相关的js文件,比如dojo.js

如果没有引入,则会出现dojo不存在的错误
同时引入之后,可以在写javascript脚本时使用dojo框架,例如dojo,byId()


4、如果要自定义布局struts 2.0中的ui tag,则要设置ui tag必须加上theme="simple"才能进行自定义布局


5、在结合dwr的过程中,在页面要导入的javascript脚本是
  <script type='text/javascript' src='/tmsot/dwr/interface/login.js'></script>
  <script type='text/javascript' src='/tmsot/dwr/engine.js'></script>
  <script type='text/javascript' src='/tmsot/dwr/util.js'></script>
但是engine.js、util.js文件没必要copy


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

 <bean id="loginAction" class="com.lsxy.tmsoft.web.action.Login"
  abstract="false" lazy-init="default"
  autowire="default" dependency-check="default" scope="prototype">

  <property name="userService">
   <ref bean="userService" />
  </property>
 </bean>

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

7、利用c3p0的连接sql server过程
   (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中配置如下代码

 <bean id="placeholderConfig"
  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="location">
   <value>classpath:init.properties</value>
  </property>
 </bean>

 <bean id="dataSource"
  class="com.mchange.v2.c3p0.ComboPooledDataSource"
  destroy-method="close" dependency-check="default">
  <property name="driverClass">
   <value>${jdbc.driverClassName}</value>
  </property>
  <property name="jdbcUrl">
   <value>${jdbc.url}</value>
  </property>
  <property name="user">
   <value>${jdbc.username}</value>
  </property>
  <property name="password">
   <value>${jdbc.password}</value>
  </property>
  <property name="acquireIncrement">
   <value>${c3p0.acquireIncrement}</value>
  </property>
  <property name="initialPoolSize">
   <value>${c3p0.initialPoolSize}</value>
  </property>
  <property name="minPoolSize">
   <value>${c3p0.minPoolSize}</value>
  </property>
  <property name="maxPoolSize">
   <value>${c3p0.maxPoolSize}</value>
  </property>
  <property name="maxStatements">
   <value>${c3p0.maxStatements}</value>
  </property>
  <property name="numHelperThreads">
   <value>${c3p0.numHelperThreads}</value>
  </property>
  <property name="maxIdleTime">
   <value>${c3p0.numHelperThreads}</value>
  </property>
 </bean>
   
   
8、对struts.xml代码著一备注

<struts>
 <constant name="objectFactory" value="spring" />
 <constant name="struts.custom.i18n.resources"
  value="globalMessages" />
 <package name="default" extends="struts-default">
  <action name="login" class="loginAction">   
   <result name="SUCCESS">/admin/index.jsp</result>
   <result name="input">/login.jsp</result>
  </action>
 </package>
</struts>

要和spring结合请加<constant name="objectFactory" value="spring" />
要国际化 <constant name="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-dd HH:mm:ss, SSS} [%c] [%p] %m%n

猜你喜欢

转载自dchengquan53390.iteye.com/blog/1122390