首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts2+spring+hibernate项目小结

2012-06-30 
struts2+spring+hibernate项目总结1、struts 2.0中的s:textfield标签???s:textfield label%{getText(

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" 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"
??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" 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

热点排行