strust.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- 这是一个重要的地方,很多人在使用<s:include>子页面后,发现子页面乱码,怎么改都不行,原因就在次,struts2的默认编码为UTF-8,乱码的同志请看看你的jsp页面上的编码是不是和这个不一致呢。只要把这里和jsp编码改一致就行了 --> <constant value="UTF-8" /> <!-- 告诉struts2,我要用spring装配工厂,其实默认就是这个了-_-!!! --> <constant value="spring" /> <!-- struts2的扩展名,比如struts1的时候,用的.do,struts2默认为.action,可以改成其它的,比如.dxd --> <constant value="action" /> <!-- 资源文件 --> <constant value="messageResource"> </constant> <!-- 用户注册类 --> <!-- abstract属性就说明了该action继承自自己定义的基础action,而class采用的registerAction是由spring产生的 --> <package extends="struts-default"> <action method="addUser"> <!-- 注册成功 --> <result>success.jsp</result> <!-- 注册失败 --> <result>error.jsp</result> </action> <action method="loginUser"> <!-- 注册成功 --> <result>success.jsp</result> <!-- 注册失败 --> <result>error.jsp</result> </action> </package> </struts>这样strust的配置大致就完成了。
第四步:配置ibatis的相关配置文件,主要是jdbc.properties,SqlMapConfig.xml以及User.xml的配置,jdbc.properties主要用于配置数据库的数据源参数,会在加载spring的时候自动初始化,ibatis数据源的配置到时可以托管给spring初始化,所以这里就不细讲了。SqlMapConfig.xml主要是配置ibatis的配置文件的位置,User.xml则用于编写相关的数据库语句等,配置大致如下:
jdbc.properties:
jdbc.driverClass=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/userinfo jdbc.user=root jdbc.password=123456 jdbc.minPoolSize=5 jdbc.maxPoolSize=20 jdbc.maxIdleTime=1800 jdbc.acquireIncrement=5 jdbc.maxStatements=50 jdbc.initialPoolSize=10 jdbc.idleConnectionTestPeriod=1800 jdbc.acquireRetryAttempts=30详细的参数含义在spring的配置文件会提及,就不细说了。
SqlMapConfig.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <!-- 用户信息表 --> <sqlMap resource="com/broada/demo/dao/ibaties/map/User.xml" /> </sqlMapConfig>User.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap> <typeAlias alias="User" type="com.broada.demo.entity.User" /> <!-- 保存注册信息 --> <insert parameterClass="User"> insert into user (name,password,username,address)values(#name#,#password#,#username#,#address#) </insert> <select parameterClass="java.lang.String" resultClass="User"> select * from user where name = #name#; </select> </sqlMap>这样,ibatis的配置大致就完成。
第五步:配置spring的相关配置文件,主要是整合ibatis以及strust中用到的bean,需要配置web.xml以及applicationContext-web.xml两个配置文件:
web.xml:
<listener> <!-- 这个就是今后用到的WebApplicationUtilContent --> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <!-- springframework config files --> <context-param> <param-name>contextConfigLocation</param-name> <!-- 把spring的配置文件放到了/WEB-INF/下的springframework包里,方便统一管理,命名规则是以applicationContent-开头的xml文件,初始化时会自动搜索所有符合规则的配置文件 --> <param-value> /WEB-INF/spring/applicationContext-*.xml </param-value> </context-param>applicationContext-web.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans "> <!-- 配置数据源,连接池采用的是c3p0,具体各参数代表意义参看c3p0自带的doc,非常详细。 --> <bean destroy-method="close"> <property value="${jdbc.driverClass}" /> <property value="${jdbc.url}" /> <property value="${jdbc.user}" /> <property value="${jdbc.password}" /> <property value="${jdbc.minPoolSize}" /> <property value="${jdbc.maxPoolSize}" /> <property value="${jdbc.maxIdleTime}" /> <property value="${jdbc.acquireIncrement}" /> <property value="${jdbc.maxStatements}" /> <property value="${jdbc.initialPoolSize}" /> <property value="${jdbc.idleConnectionTestPeriod}" /> <property value="${jdbc.acquireRetryAttempts}" /> </bean> <!-- 上面的数据源的value值用的是表达式,原因就在这里,这将配置文件放到了iBatis目录下,也就是jdbc.properties,设置了c3p0的各项参数 --> <bean> <property> <value>/WEB-INF/ibatis/jdbc.properties</value> </property> </bean> <!-- 配置iBatis的sqlMapClient,这里当然是交给了spring去处理,其中,将SqlMapConfig文件放到了WEB-INF的iBatis目录下,也是便于管理 --> <bean> <property> <value>/WEB-INF/ibatis/SqlMapConfig.xml</value> </property> <!-- 这里使用的数据源就是上面配置的数据源 --> <property> <ref bean="dataSource" /> </property> </bean> <bean> <property ref="sqlMapClient"></property> </bean> <bean> <property ref="userdaoId"> </property> </bean> <!-- 用户注册action--> <bean scope="prototype"> <property ref="userDaoServiceId"></property> </bean> </beans>这样,ssi框架的大致配置就完成了。
最后编写相关的dao层,service层,action层以及jsp等等,我就不详细说明了,直接上相关代码: