Struts2.3.16+Spring3.2.8+Hibernate4.2.10全注解配置
2017-04-20 00:43
447 查看
1 数据库配置
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=mysql
2 log4j.xml
log4j.rootLogger=debug, stdout
log4j.logger.java.sql.Connection=info, stdout
log4j.logger.java.sql.Statement=debug, stdout
log4j.logger.java.sql.PreparedStatement=debug, stdout
log4j.logger.org.hibernate=error
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.tool.hbm2ddl=debug
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss} %c:%L - %m%n
log4j.category.org.springframework = ON
3 pom.xml
[align=left]<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"[/align]
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> [align=left] <modelVersion> 4.0.0</modelVersion >[/align]
[align=left] <groupId> com.lin</groupId >[/align]
<artifactId> com.lin.ssh.demo</artifactId >
[align=left] <version> 0.0.1-SNAPSHOT</version >[/align]
[align=left] <packaging> jar</packaging >[/align]
[align=left] <properties>[/align]
[align=left] <checkstyle.config.location> config/maven_checks.xml</checkstyle.config.location >[/align]
[align=left] <spring.version> 3.2.8.RELEASE</spring.version >[/align]
[align=left] <struts2.version> 2.3.16.1</struts2.version >[/align]
[align=left] <hibernate.version> 4.2.10.Final</hibernate.version >[/align]
[align=left] <mybatis.version> 3.2.6</mybatis.version >[/align]
[align=left] <mysql.version> 5.1.29</mysql.version >[/align]
[align=left] <servlet-api.version> 2.5</servlet-api.version >[/align]
[align=left] <jsp-api.version> 2.2</jsp-api.version >[/align]
[align=left] <jstl.version> 1.2</jstl.version >[/align]
[align=left] <fastjson.version> 1.1.39</fastjson.version >[/align]
[align=left] <commons-dbcp2.version> 2.0</commons-dbcp2.version >[/align]
[align=left] <commons-pool2.version> 2.2</commons-pool2.version >[/align]
[align=left] <commons-logging.version> 1.1.3</commons-logging.version >[/align]
[align=left] <commons-io.version> 1.3.2</commons-io.version >[/align]
[align=left] <commons-lang3.version> 3.3.1</commons-lang3.version >[/align]
[align=left] <commons-fileupload.version> 1.2.1</commons-fileupload.version >[/align]
[align=left] <log4j.version> 1.2.17</log4j.version >[/align]
[align=left] <slf4j.version> 1.7.6</slf4j.version >[/align]
[align=left] <dom4j.version> 1.6.1</dom4j.version >[/align]
[align=left] <jfreechart.version> 1.0.17</jfreechart.version >[/align]
[align=left] <shiro.version> 1.2.3</shiro.version >[/align]
[align=left] <aspectjweaver.version> 1.7.4</aspectjweaver.version >[/align]
[align=left] <bonecp.version> 0.8.0.RELEASE</bonecp.version >[/align]
[align=left] <druid.version> 1.0.6</druid.version >[/align]
[align=left] <c3p0.version> 0.9.2.1</c3p0.version >[/align]
[align=left] <testng.version> 6.8.8</testng.version >[/align]
[align=left] <junit.version> 4.11</junit.version >[/align]
[align=left] <freemarker.version> 2.3.20</freemarker.version >[/align]
[align=left] <velocity.version> 1.7</velocity.version >[/align]
[align=left] <tapestry.version> 5.3.7</tapestry.version >[/align]
[align=left] <asm.version> 4.2</asm.version >[/align]
[align=left] <cglib.version> 3.1</cglib.version >[/align]
<!-- Plugin 的属性定义
-->
[align=left] <project.build.sourceEncoding> UTF-8</project.build.sourceEncoding >[/align]
[align=left] <jdk.version> 1.6</jdk.version >[/align]
[align=left] </properties>[/align]
[align=left] <name> com.lin.ssh.demo</name >[/align]
[align=left] <url> http://maven.apache.org</url >[/align]
[align=left] <dependencies>[/align]
[align=left] <!-- struts2 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-core</artifactId >[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-spring-plugin </artifactId>[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-json- plugin</ artifactId>[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-dwr- plugin</ artifactId>[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-rest-plugin </artifactId>[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-javatemplates -plugin</artifactId >[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-jfreechart -plugin</artifactId >[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-convention-plugin </artifactId>[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- hibernate -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.hibernate</groupId >[/align]
[align=left] <artifactId> hibernate-core </artifactId>[/align]
[align=left] <version> ${hibernate.version}</version >[/align]
<!-- 因为struts2 中也有 javassist,所以要排除
-->
[align=left] <exclusions>[/align]
[align=left] <exclusion>[/align]
[align=left] <groupId> javassist</groupId >[/align]
[align=left] <artifactId> javassist</artifactId >[/align]
[align=left] </exclusion>[/align]
[align=left] </exclusions>[/align]
[align=left] </dependency>[/align]
[align=left] <!-- mybaits -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.mybatis</groupId >[/align]
[align=left] <artifactId> mybatis</artifactId >[/align]
[align=left] <version> ${mybatis.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- JDBC驱动 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> mysql</groupId >[/align]
[align=left] <artifactId> mysql-connector-java </artifactId>[/align]
[align=left] <version> ${mysql.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- spring相关 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-core</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-beans</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-context</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-jdbc </artifactId>[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-web</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-webmvc </artifactId>[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-aop </artifactId>[/align]
[align=left] <version> ${spring.version}</version >[/align]
</dependency>
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-tx </artifactId>[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-orm </artifactId>[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-context-support</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-jms </artifactId>[/align]
<version> ${spring.version}</version >
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework.security</groupId >[/align]
[align=left] <artifactId> spring-security-core</artifactId >[/align]
[align=left] <version> 3.2.4.RELEASE</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 日志库 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-logging</groupId >[/align]
[align=left] <artifactId> commons-logging</artifactId >[/align]
[align=left] <version> ${commons-logging.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> log4j</groupId >[/align]
[align=left] <artifactId> log4j</artifactId >[/align]
[align=left] <version> ${log4j.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.slf4j</groupId >[/align]
[align=left] <artifactId> slf4j-log4j12</artifactId >[/align]
[align=left] <version> ${slf4j.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.slf4j</groupId >[/align]
[align=left] <artifactId> slf4j-api </artifactId>[/align]
[align=left] <version> ${slf4j.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 依赖的WEB类库 TOMCAT环境注释[/align]
[align=left] <dependency>[/align]
[align=left] <groupId>javax.servlet</groupId>[/align]
[align=left] <artifactId>javax.servlet- api</artifactId>[/align]
[align=left] <version>3.1.0</version>[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId>javax.servlet</groupId>[/align]
[align=left] <artifactId> servlet-api </artifactId>[/align]
[align=left] <version>${ servlet-api.version}</version>[/align]
[align=left] </dependency>-->[/align]
[align=left] <!--⑤ 依赖的测试类库-->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-test</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> junit</groupId >[/align]
[align=left] <artifactId> junit</artifactId >[/align]
[align=left] <version> ${junit.version}</version >[/align]
[align=left] <scope> test</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.testng</groupId >[/align]
[align=left] <artifactId> testng</artifactId >[/align]
[align=left] <version> ${testng.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 连接池 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.alibaba</groupId >[/align]
[align=left] <artifactId> druid</artifactId >[/align]
[align=left] <version> ${druid.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.jolbox</groupId >[/align]
[align=left] <artifactId> bonecp-spring </artifactId>[/align]
[align=left] <version> ${bonecp.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.jolbox</groupId >[/align]
[align=left] <artifactId> bonecp</artifactId >[/align]
[align=left] <version> ${bonecp.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.mchange</groupId >[/align]
[align=left] <artifactId> c3p0</artifactId >[/align]
[align=left] <version> ${c3p0.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- shiro -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-core </artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-web </artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-spring </artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-ehcache</artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-aspectj</artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-quartz </artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 模板技术 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.freemarker</groupId >[/align]
[align=left] <artifactId> freemarker</artifactId >[/align]
[align=left] <version> ${freemarker.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.velocity</groupId >[/align]
[align=left] <artifactId> velocity</artifactId >[/align]
[align=left] <version> ${velocity.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] [/align]
[align=left] <!-- 依赖的公共类库-->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-dbcp2</artifactId >[/align]
[align=left] <version> ${commons-dbcp2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-pool2</artifactId >[/align]
[align=left] <version> ${commons-pool2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-io </artifactId>[/align]
[align=left] <version> ${commons-io.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-lang3</artifactId >[/align]
[align=left] <version> ${commons-lang3.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-proxy </artifactId>[/align]
[align=left] <version> 1.0</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
<groupId> org.apache.commons</groupId >
[align=left] <artifactId> commons-jexl </artifactId>[/align]
[align=left] <version> 2.1.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-exec </artifactId>[/align]
[align=left] <version> 1.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-compress</artifactId >[/align]
[align=left] <version> 1.8</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-daemon</artifactId >[/align]
[align=left] <version> 1.0.9</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-math</artifactId >[/align]
[align=left] <version> 2.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-collections4</artifactId >[/align]
[align=left] <version> 4.0</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.kuali.commons</groupId >[/align]
[align=left] <artifactId> commons-beanutils </artifactId>[/align]
[align=left] <version> 1.8.3-kuali-4 </version>[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-dbutils </groupId>[/align]
[align=left] <artifactId> commons-dbutils </artifactId>[/align]
[align=left] <version> 1.5</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 缓存 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> net.sf.ehcache</groupId >[/align]
[align=left] <artifactId> ehcache</artifactId >[/align]
[align=left] <version> 2.8.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.googlecode.xmemcached</groupId >[/align]
[align=left] <artifactId> xmemcached</artifactId >[/align]
[align=left] <version> 1.4.3</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> opensymphony</groupId >[/align]
[align=left] <artifactId> oscache</artifactId >[/align]
[align=left] <version> 2.4.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- cglib 与asm -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> cglib</groupId >[/align]
[align=left] <artifactId> cglib-nodep</artifactId>[/align]
[align=left] <version> ${cglib.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> cglib</groupId >[/align]
[align=left] <artifactId> cglib</artifactId >[/align]
[align=left] <version> ${cglib.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm</artifactId >[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-commons </artifactId>[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-util</artifactId>[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-all</artifactId >[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-analysis </artifactId>[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-tree</artifactId >[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-debug-all </artifactId>[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 其他 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.alibaba</groupId >[/align]
[align=left] <artifactId> fastjson</artifactId >[/align]
[align=left] <version> ${fastjson.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.aspectj</groupId >[/align]
[align=left] <artifactId> aspectjweaver</artifactId >[/align]
[align=left] <version> ${aspectjweaver.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> dom4j</groupId >[/align]
[align=left] <artifactId> dom4j</artifactId >[/align]
[align=left] <version> ${dom4j.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.belerweb</groupId >[/align]
[align=left] <artifactId> pinyin4j</artifactId >[/align]
[align=left] <version> 2.5.0</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.darwinsys</groupId >[/align]
[align=left] <artifactId> hirondelle-date4j </artifactId>[/align]
[align=left] <version> 1.5.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> net.sourceforge.htmlunit</groupId >[/align]
[align=left] <artifactId> htmlunit</artifactId >[/align]
[align=left] <version> 2.14</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> net.sourceforge.jwebunit</groupId >[/align]
[align=left] <artifactId> jwebunit-htmlunit-plugin</artifactId >[/align]
[align=left] <version> 3.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> net.sourceforge.javacsv</groupId >[/align]
[align=left] <artifactId> javacsv</artifactId >[/align]
[align=left] <version> 2.0</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.jsoup</groupId >[/align]
[align=left] <artifactId> jsoup</artifactId >[/align]
[align=left] <version> 1.7.3</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-email</artifactId >[/align]
[align=left] <version> 1.3.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-beanutils </groupId>[/align]
[align=left] <artifactId> commons-beanutils </artifactId>[/align]
[align=left] <version> 1.9.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-collections</groupId >[/align]
[align=left] <artifactId> commons-collections</artifactId >[/align]
[align=left] <version> 3.2.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-configuration</groupId >[/align]
[align=left] <artifactId> commons-configuration</artifactId >[/align]
[align=left] <version> 1.10</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-dbcp </groupId>[/align]
[align=left] <artifactId> commons-dbcp </artifactId>[/align]
[align=left] <version> 1.4</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-fileupload </groupId>[/align]
[align=left] <artifactId> commons-fileupload</artifactId >[/align]
[align=left] <version> 1.3.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.httpcomponents</groupId >[/align]
[align=left] <artifactId> httpclient</artifactId >[/align]
[align=left] <version> 4.3.4</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-validator</groupId >[/align]
[align=left] <artifactId> commons-validator</artifactId >[/align]
[align=left] <version> 1.4.0</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> joda-time</groupId >[/align]
[align=left] <artifactId> joda-time</artifactId >[/align]
[align=left] <version> 2.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.activation</groupId >[/align]
[align=left] <artifactId> activation</artifactId >[/align]
[align=left] <version> 1.0.2</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.xml</groupId >[/align]
[align=left] <artifactId> jaxrpc-api</artifactId >[/align]
[align=left] <version> 1.1</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.mail</groupId >[/align]
[align=left] <artifactId> mail</artifactId >[/align]
[align=left] <version> 1.3.1</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.xml</groupId >[/align]
[align=left] <artifactId> namespace</artifactId >[/align]
[align=left] <version> 1.0.1</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> xerces</groupId >[/align]
[align=left] <artifactId> xmlParserAPIs</artifactId >[/align]
[align=left] <version> 2.6.2</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> xml-apis</groupId >[/align]
[align=left] <artifactId> xml-apis</artifactId >[/align]
[align=left] <version> 1.4.01</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.openejb</groupId >[/align]
[align=left] <artifactId> javaee-api</artifactId >[/align]
[align=left] <version> 5.0-1</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.faces</groupId >[/align]
[align=left] <artifactId> jsf-api</artifactId >[/align]
[align=left] <version> 1.2_04</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.servlet</groupId >[/align]
[align=left] <artifactId> jstl</artifactId >[/align]
[align=left] <version> 1.2</version >[/align]
[align=left] <scope> compile</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- [/align]
[align=left] <dependency>[/align]
[align=left] <groupId>javax.servlet.jsp</groupId>[/align]
[align=left] <artifactId>jsp-api</artifactId>[/align]
[align=left] <version>2.1</version>[/align]
[align=left] <scope>compile</scope>[/align]
[align=left] </dependency>[/align]
[align=left] -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.faces</groupId >[/align]
[align=left] <artifactId> jsf-impl</artifactId >[/align]
[align=left] <version> 1.2_04</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] </dependencies>[/align]
[align=left]</project>[/align]
4 applicationContext.xml 配置
[align=left] <?xml version="1.0" encoding= "UTF-8"?>[/align]
[align=left]<beans xmlns="http://www.springframework.org/schema/beans"[/align]
[align=left] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"[/align]
[align=left] xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"[/align]
[align=left] xsi:schemaLocation="http://www.springframework.org/schema/beans[/align]
[align=left] http://www.springframework.org/schema/beans/spring-beans.xsd[/align] [align=left] http://www.springframework.org/schema/tx[/align] [align=left] http://www.springframework.org/schema/tx/spring-tx.xsd[/align] [align=left] http://www.springframework.org/schema/aop[/align] [align=left] http://www.springframework.org/schema/aop/spring-aop.xsd[/align] [align=left] http://www.springframework.org/schema/context[/align] [align=left] http://www.springframework.org/schema/context/spring-context.xsd"[/align] [align=left] default-autowire="byName" >[/align]
[align=left] <context:property-placeholder location="classpath*:conf/jdbc.properties" />[/align]
[align=left] <context:component-scan base-package="com.lin.ssh.demo.dao" />[/align]
[align=left] <context:component-scan base-package="com.lin.ssh.demo.service" />[/align]
[align=left] <context:component-scan base-package="com.lin.ssh.demo.service.impl" />[/align]
<!--
配置系统的数据源 -->
[align=left] <bean id= "dataSource" class="com.alibaba.druid.pool.DruidDataSource"[/align]
[align=left] init-method="init" destroy-method= "close">[/align]
[align=left] <property name="driverClassName" value="${jdbc.driver}" />[/align]
[align=left] <property name="url" value="${jdbc.url}" />[/align]
[align=left] <property name="username" value="${jdbc.username}" />[/align]
[align=left] <property name="password" value="${jdbc.password}" />[/align]
[align=left] <property name="filters" value="stat" />[/align]
[align=left] <property name="maxActive" value="10" />[/align]
[align=left] <property name="initialSize" value="1" />[/align]
[align=left] <property name="maxWait" value="60000" />[/align]
[align=left] <property name="minIdle" value="1" />[/align]
[align=left] <property name="timeBetweenEvictionRunsMillis" value="60000" />[/align]
[align=left] <property name="minEvictableIdleTimeMillis" value="300000" />[/align]
<property name="validationQuery" value="SELECT
'x'" />
[align=left] <property name="testWhileIdle" value="true" />[/align]
[align=left] <property name="testOnBorrow" value="false" />[/align]
[align=left] <property name="testOnReturn" value="false" />[/align]
[align=left] <property name="poolPreparedStatements" value="true" />[/align]
[align=left] <property name="maxPoolPreparedStatementPerConnectionSize"[/align]
[align=left] value="50" />[/align]
[align=left] <property name="maxOpenPreparedStatements" value="100" />[/align]
[align=left] </bean>[/align]
<!--
配置hibernate session工厂 -->
[align=left] <bean id= "sessionFactory"[/align]
[align=left] class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" >[/align]
[align=left] <property name="dataSource" ref="dataSource" />[/align]
[align=left] <property name="hibernateProperties" >[/align]
[align=left] <props>[/align]
[align=left] <prop key="hibernate.dialect" >org.hibernate.dialect.MySQL5InnoDBDialect</prop >[/align]
[align=left] <prop key="hibernate.current_session_context_class" >org.springframework.orm.hibernate4.SpringSessionContext[/align]
[align=left] </prop>[/align]
[align=left] <prop key="hibernate.show_sql" >true</ prop>[/align]
[align=left] <prop key="hibernate.format_sql" >true</ prop>[/align]
[align=left] <prop key="hibernate.hbm2ddl.auto" >update</ prop>[/align]
[align=left] </props>[/align]
[align=left] </property>[/align]
<!--
自动扫描注解方式配置的 hibernate类文件 -->
[align=left] <property name="packagesToScan" >[/align]
[align=left] <list>[/align]
[align=left] <value> com.lin.ssh.demo.model</value >[/align]
[align=left] </list>[/align]
[align=left] </property>[/align]
<!--
自动扫描hbm方式配置的hibernate 文件和.hbm文件
-->
[align=left] <!--[/align]
[align=left] <property name="mappingDirectoryLocations"> <list>[/align]
<value>classpath:sy/ hbm</value>
</list> </property>
[align=left] -->[/align]
[align=left] </bean>[/align]
[align=left] <bean id= "transactionManager"[/align]
[align=left] class="org.springframework.orm.hibernate4.HibernateTransactionManager" >[/align]
[align=left] <property name="sessionFactory" ref="sessionFactory" />[/align]
[align=left] </bean>[/align]
[align=left] <tx:advice id= "txAdvice" transaction-manager ="transactionManager">[/align]
[align=left] <tx:attributes>[/align]
[align=left] <tx:method name="select*" read-only= "true" />[/align]
[align=left] <tx:method name="get*" read-only= "true" />[/align]
[align=left] <tx:method name="load*" read-only= "true" />[/align]
[align=left] <tx:method name="find*" read-only= "true" />[/align]
[align=left] <tx:method name="query*" read-only= "true" />[/align]
[align=left] <tx:method name="read*" read-only= "true" />[/align]
[align=left] <tx:method name="sync*" />[/align]
[align=left] <tx:method name="*" propagation= "REQUIRED" rollback-for="Exception" />[/align]
[align=left] </tx:attributes>[/align]
[align=left] </tx:advice>[/align]
[align=left] <aop:config proxy-target-class="true" >[/align]
[align=left] <aop:pointcut expression="this(com.lin.ssh.demo.service.IBaseService)"[/align]
[align=left] id= "transactionPointcut" />[/align]
[align=left] <aop:advisor advice-ref="txAdvice" pointcut-ref="transactionPointcut" />[/align]
[align=left] </aop:config>[/align]
[align=left]</beans>[/align]
5 Struts2配置
[align=left]<?xml version="1.0" encoding= "UTF-8" ?>[/align]
[align=left]<!DOCTYPE struts PUBLIC[/align]
"-//Apache Software Foundation//DTD
Struts Configuration 2.3//EN"
[align=left] "http://struts.apache.org/dtds/struts-2.3.dtd" >[/align]
[align=left]<struts>[/align]
[align=left] <!-- 开发模式 -->[/align]
[align=left] <constant name="struts.devMode" value="true" />[/align]
[align=left] <!-- Web运用编码 -->[/align]
[align=left] <constant name="struts.i18n.encoding" value="UTF-8" />[/align]
[align=left] <!--搜索视图资源的路径-->[/align]
[align=left] <constant name="struts.convention.result.path" value="/pages" />[/align]
[align=left] <!--搜索Action资源的包路径-->[/align]
[align=left] <constant name="struts.convention.package.locators" value="web,action" />[/align]
[align=left] <!-- Action扩展名 -->[/align]
[align=left] <constant name="struts.action.extension" value="action,do,htm" />[/align]
[align=left] <!-- Action后缀名 -->[/align]
[align=left] <constant name="struts.convention.action.suffix" value="Action" />[/align]
[align=left] <!-- 指定由spring负责action的创建 -->[/align]
[align=left] <constant name="struts.objectFactory" value="spring" />[/align]
[align=left] <!--[/align]
[align=left] 指定spring框架的装配模式,装配方式有: name, type, auto, and constructor (name[/align]
[align=left] 是默认装配模式)[/align]
[align=left] -->[/align]
[align=left] <constant name="struts.objectFactory.spring.autoWire" value="name" />[/align]
<!-- 该属性指定整合spring时,是否对bean进行缓存,值为true
or false,默认为true -->
[align=left] <constant name="struts.objectFactory.spring.useClassCache" value="true" />[/align]
[align=left] [/align]
<!-- struts配置文件修改后,是否重新加载,开发模式下用 true,生产环境改成false
-->
[align=left] <constant name="struts.configuration.xml.reload" value="true" />[/align]
[align=left] <constant name="struts.serve.static.browserCache" value="false" />[/align]
[align=left] [/align]
<!-- 该属性指定处理 MIME-type multipart/form-data,文件上传
-->
[align=left] <constant name="struts.multipart.parser" value="cos" />[/align]
[align=left] <constant name="struts.multipart.parser" value="pell" />[/align]
[align=left] <constant name="struts.multipart.parser" value="jakarta" />[/align]
<!-- 指定上传文件时的临时目录,默认使用 javax.servlet.context.tempdir
-->
[align=left] <constant name="struts.multipart.saveDir" value="/tmpuploadfiles" />[/align]
[align=left] <!-- 配置文件上传大小上限,现今最大上限为50MB -->[/align]
[align=left] <constant name="struts.multipart.maxSize" value="500971520" />[/align]
<!-- 被 FilterDispatcher使用指定浏览器是否缓存静态内容,测试阶段设置为false,发布阶段设置为true.
-->
[align=left] <constant name="struts.serve.static.browserCache" value="true" />[/align]
[align=left] <!-- 设置是否支持动态方法调用,true为支持,false不支持. -->[/align]
[align=left] <constant name="struts.enable.DynamicMethodInvocation" value="true" />[/align]
<!-- 设置是否可以在action中使用斜线,默认为false不可以,想使用需设置为true.
-->
[align=left] <constant name="struts.enable.SlashesInActionNames" value="true" />[/align]
[align=left] <!-- 是否允许使用表达式语法,默认为true. -->[/align]
[align=left] <constant name="struts.tag.altSyntax" value="true" />[/align]
[align=left] <!-- 设置是否每次请求,都重新加载资源文件,默认值为false. -->[/align]
[align=left] <constant name="struts.i18n.reload" value="false" />[/align]
[align=left] <package name="demoPackage" extends="struts-default" namespace="/demo" >[/align]
[align=left] <global-results>[/align]
[align=left] <result name="success" >/pages/index.jsp</ result>[/align]
[align=left] <result name="login" >/index.jsp</ result>[/align]
[align=left] <result name="error" >/error.jsp</ result>[/align]
[align=left] </global-results>[/align]
[align=left] </package>[/align]
[align=left]</struts>[/align]
[align=left] [/align]
6 web.xml
[align=left]<?xml version="1.0" encoding= "UTF-8"?>[/align]
[align=left]<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"[/align]
[align=left] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"[/align]
[align=left] xsi:schemaLocation="http://java.sun.com/xml/ns/javaee[/align]
[align=left] http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >[/align]
[align=left] <context-param>[/align]
[align=left] <param-name>log4jConfigLocation</param-name>[/align]
[align=left] <param-value>classpath:conf/log4j.properties</param-value>[/align]
[align=left] </context-param>[/align]
[align=left] <context-param>[/align]
[align=left] <param-name>contextConfigLocation</param-name >[/align]
[align=left] <param-value>classpath:conf/applictionContext.xml</param-value>[/align]
[align=left] </context-param>[/align]
[align=left] <listener>[/align]
[align=left] <listener-class> org.springframework.web.util.Log4jConfigListener</listener-class >[/align]
[align=left] </listener>[/align]
[align=left] <listener>[/align]
[align=left] <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class>[/align]
[align=left] </listener>[/align]
[align=left] <listener>[/align]
[align=left] <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class>[/align]
[align=left] </listener>[/align]
[align=left] <listener>[/align]
[align=left] <listener-class> org.springframework.web.util.IntrospectorCleanupListener </listener-class>[/align]
[align=left] </listener>[/align]
[align=left] <filter>[/align]
[align=left] <filter-name> encodingFilter</filter-name>[/align]
[align=left] <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class>[/align]
[align=left] <init-param>[/align]
[align=left] <param-name> encoding</param-name>[/align]
[align=left] <param-value> UTF-8</param-value>[/align]
[align=left] </init-param>[/align]
[align=left] </filter>[/align]
[align=left] <filter-mapping>[/align]
[align=left] <filter-name>encodingFilter</filter-name>[/align]
[align=left] <url-pattern>/*</url-pattern>[/align]
[align=left] </filter-mapping>[/align]
[align=left] <filter>[/align]
[align=left] <filter-name>struts2</filter-name >[/align]
[align=left] <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class>[/align]
[align=left] </filter>[/align]
[align=left] <filter-mapping>[/align]
[align=left] <filter-name>struts2</filter-name >[/align]
[align=left] <url-pattern> /*</ url-pattern>[/align]
[align=left] </filter-mapping>[/align]
[align=left] <welcome-file-list>[/align]
[align=left] <welcome-file> login.html</welcome-file >[/align]
[align=left] </welcome-file-list>[/align]
[align=left]</web-app>[/align]
7 UserAction
[align=left] [/align]
package com.lin.ssh.demo.web.action;
import java.util.List;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import com.lin.ssh.demo.model.UserBean;
import com.lin.ssh.demo.service.IUserService;
import com.opensymphony.xwork2.ActionSupport;
//@ParentPackage("demoPackage")
@Namespace("/demo")
@Component
@Scope("prototype")
@Action("userAction")
public class UserAction extends ActionSupport {
private IUserService userService;
private UserBean user;
private List<UserBean> userList;
/**
* http://127.0.0.1:8080/ssh/demo/regUser!index.do
* @return
*/
@Action(value = "regUser", results = {
@Result(name = "success", location = "/pages/login.jsp"),
@Result(name = "input", location = "/pages/error.jsp") })
public String index() {
System.out.println("----reg page----");
return SUCCESS;
}
@Action(value = "saveUser", results = {
@Result(name = "list", location = "/pages/list.jsp"),
@Result(name = "input", location = "/pages/error.jsp"),
@Result(name = "success", location = "/pages/index.jsp")})
public String save() {
System.out.println("----save----");
System.out.println("===="+user);
try {
userService.saveUser(user);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
}
/**
* http://127.0.0.1:8080/ssh/demo/userAction!list.do
*/
public void list() {
System.out.println("----list----");
System.out.println(user);
try {
userList = userService.queryUserAll();
System.out.println("userList ==" + userList.get(0).toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return SUCCESS;
}
public List<UserBean> getUserList() {
return userList;
}
public void setUserList(List<UserBean> userList) {
this.userList = userList;
}
public IUserService getUserService() {
return userService;
}
@Autowired
public void setUserService(IUserService userService) {
this.userService = userService;
}
public UserBean getUser() {
return user;
}
public void setUser(UserBean user) {
this.user = user;
}
}
8 UserDAO
package com.lin.ssh.demo.dao;
import java.util.List;
import com.lin.ssh.demo.model.UserBean;
public interface IUserDAO {
public void save(UserBean entity) throws Exception;
public List<UserBean> find(Class<UserBean> clazz) throws Exception;
}
package com.lin.ssh.demo.dao;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.lin.ssh.demo.model.UserBean;
@Repository("userDao")
public class UserDAO extends DaoSupport implements IUserDAO {
/**
* 保存对象
*
* @param entity
* @throws Exception
*/
@Override
public void save(UserBean entity) throws Exception {
super.save(entity);
}
@Override
public List<UserBean> find(Class clazz) throws Exception {
return super.findAll(clazz);
}
}
package com.lin.ssh.demo.dao;
import static org.hibernate.criterion.Restrictions.eq;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
/**
*
* @author linhz
*
*/
public class DaoSupport {
private SessionFactory sessionFactory;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
protected Session getSession() {
return sessionFactory.getCurrentSession();
}
protected void save(Object obj) {
getSession().save(obj);
}
protected <T> T get(Class<T> clazz, int id) {
return (T) getSession().get(clazz, id);
}
protected <T> List<T> findByProperty(Class<T> clazz, String property,
Object value) {
return getSession().createCriteria(clazz).add(eq(property, value))
.list();
}
protected <T> List<T> findAll(Class<T> clazz) {
return getSession().createCriteria(clazz).list();
}
protected void update(Object obj) {
getSession().update(obj);
}
protected void delete(Class clazz, int id) {
getSession().delete(get(clazz, id));
}
protected void delete(Object obj) {
getSession().delete(obj);
}
}
9 Model POJO
[align=left]package com.lin.ssh.demo.model;[/align]
[align=left]import javax.persistence.Column;[/align]
[align=left]import javax.persistence.Entity;[/align]
[align=left]import javax.persistence.GeneratedValue;[/align]
[align=left]import javax.persistence.Id;[/align]
[align=left]import javax.persistence.Table;[/align]
[align=left]import static javax.persistence.GenerationType.IDENTITY;[/align]
[align=left]@Entity[/align]
[align=left]@Table(name = "tb_demo", schema = "test")[/align]
public class UserBean implements java.io.Serializable
{
[align=left] @Id[/align]
@GeneratedValue(strategy
= IDENTITY)
@Column(name
= "id", unique = true,
nullable = false)
[align=left] private Long id;[/align]
@Column(name
= "username", length = 32)
[align=left] private String username;[/align]
@Column(name
= "password", length = 16)
[align=left] private String password;[/align]
public UserBean()
{
[align=left] }[/align]
public UserBean(String
username, String password) {
this.username =
username;
this.password =
password;
[align=left] }[/align]
public Long
getId() {
[align=left] return id ;[/align]
[align=left] }[/align]
public void setId(Long
id) {
this.id =
id;
[align=left] }[/align]
public String
getUsername() {
[align=left] return username ;[/align]
[align=left] }[/align]
public void setUsername(String
username) {
this.username =
username;
[align=left] }[/align]
public String
getPassword() {
[align=left] return password ;[/align]
[align=left] }[/align]
public void setPassword(String
password) {
this.password =
password;
[align=left] }[/align]
[align=left] @Override[/align]
public String
toString() {
[align=left] return "User{" +[/align]
[align=left] "id=" + id +[/align]
",
username='" + username + '\'' +
",
password='" + password + '\'' +
[align=left] '}';[/align]
[align=left] }[/align]
[align=left]}[/align]
10 UserService
[align=left]package com.lin.ssh.demo.service;[/align]
public interface IBaseService
{
[align=left]}[/align]
[align=left]package com.lin.ssh.demo.service;[/align]
[align=left]import java.util.List;[/align]
[align=left]import com.lin.ssh.demo.model.UserBean;[/align]
public interface IUserService extends IBaseService
{
public void saveUser(UserBean
user) throws Exception;
public List<UserBean>
queryUserAll() throws Exception;
[align=left]}[/align]
package com.lin.ssh.demo.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.lin.ssh.demo.dao.UserDAO;
import com.lin.ssh.demo.model.UserBean;
import com.lin.ssh.demo.service.IUserService;
@Service("userService")
public class UserServiceImpl implements IUserService {
@Resource
private UserDAO userDao;
public void saveUser(UserBean user) throws Exception {
userDao.save(user);
}
public List<UserBean> queryUserAll() throws Exception {
return userDao.find(UserBean.class);
}
}
11 测试页面 index.jsp
[align=left]<%@ page contentType= "text/html;charset=UTF-8" language= "java"%>[/align]
[align=left]<%[/align]
[align=left] String path = request.getContextPath();[/align]
[align=left] String contextPath = request.getScheme() + "://"[/align]
+ request.getServerName() + ":" +
request.getServerPort()
[align=left] + path + "/";[/align]
[align=left]%>[/align]
[align=left]<html>[/align]
[align=left] <head>[/align]
[align=left] <title></ title>[/align]
[align=left] </head>[/align]
[align=left] <body>[/align]
[align=left] <form action=" <%=contextPath%> /demo/saveUser!save.action" method="get" >[/align]
[align=left] <br>[/align]
[align=left] 用户名:[/align]
[align=left] <input type="text" name="user.username" />[/align]
[align=left] <br>[/align]
[align=left] 密码:[/align]
[align=left] <input type="text" name="user.password" />[/align]
[align=left] <input type="submit" name="保存" />[/align]
[align=left] </form>[/align]
[align=left] </body>[/align]
[align=left]</html>[/align]
12 SQL语句脚本
use test ;
CREATE TABLE `tb_demo` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(32) DEFAULT NULL,
`password` varchar(16) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
13 测试
webcontent部署为:ssh
访问地址:
http://127.0.0.1:8080/ssh/demo/regUser!index.do
数据正常插入
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=mysql
2 log4j.xml
log4j.rootLogger=debug, stdout
log4j.logger.java.sql.Connection=info, stdout
log4j.logger.java.sql.Statement=debug, stdout
log4j.logger.java.sql.PreparedStatement=debug, stdout
log4j.logger.org.hibernate=error
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.tool.hbm2ddl=debug
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss} %c:%L - %m%n
log4j.category.org.springframework = ON
3 pom.xml
[align=left]<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"[/align]
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> [align=left] <modelVersion> 4.0.0</modelVersion >[/align]
[align=left] <groupId> com.lin</groupId >[/align]
<artifactId> com.lin.ssh.demo</artifactId >
[align=left] <version> 0.0.1-SNAPSHOT</version >[/align]
[align=left] <packaging> jar</packaging >[/align]
[align=left] <properties>[/align]
[align=left] <checkstyle.config.location> config/maven_checks.xml</checkstyle.config.location >[/align]
[align=left] <spring.version> 3.2.8.RELEASE</spring.version >[/align]
[align=left] <struts2.version> 2.3.16.1</struts2.version >[/align]
[align=left] <hibernate.version> 4.2.10.Final</hibernate.version >[/align]
[align=left] <mybatis.version> 3.2.6</mybatis.version >[/align]
[align=left] <mysql.version> 5.1.29</mysql.version >[/align]
[align=left] <servlet-api.version> 2.5</servlet-api.version >[/align]
[align=left] <jsp-api.version> 2.2</jsp-api.version >[/align]
[align=left] <jstl.version> 1.2</jstl.version >[/align]
[align=left] <fastjson.version> 1.1.39</fastjson.version >[/align]
[align=left] <commons-dbcp2.version> 2.0</commons-dbcp2.version >[/align]
[align=left] <commons-pool2.version> 2.2</commons-pool2.version >[/align]
[align=left] <commons-logging.version> 1.1.3</commons-logging.version >[/align]
[align=left] <commons-io.version> 1.3.2</commons-io.version >[/align]
[align=left] <commons-lang3.version> 3.3.1</commons-lang3.version >[/align]
[align=left] <commons-fileupload.version> 1.2.1</commons-fileupload.version >[/align]
[align=left] <log4j.version> 1.2.17</log4j.version >[/align]
[align=left] <slf4j.version> 1.7.6</slf4j.version >[/align]
[align=left] <dom4j.version> 1.6.1</dom4j.version >[/align]
[align=left] <jfreechart.version> 1.0.17</jfreechart.version >[/align]
[align=left] <shiro.version> 1.2.3</shiro.version >[/align]
[align=left] <aspectjweaver.version> 1.7.4</aspectjweaver.version >[/align]
[align=left] <bonecp.version> 0.8.0.RELEASE</bonecp.version >[/align]
[align=left] <druid.version> 1.0.6</druid.version >[/align]
[align=left] <c3p0.version> 0.9.2.1</c3p0.version >[/align]
[align=left] <testng.version> 6.8.8</testng.version >[/align]
[align=left] <junit.version> 4.11</junit.version >[/align]
[align=left] <freemarker.version> 2.3.20</freemarker.version >[/align]
[align=left] <velocity.version> 1.7</velocity.version >[/align]
[align=left] <tapestry.version> 5.3.7</tapestry.version >[/align]
[align=left] <asm.version> 4.2</asm.version >[/align]
[align=left] <cglib.version> 3.1</cglib.version >[/align]
<!-- Plugin 的属性定义
-->
[align=left] <project.build.sourceEncoding> UTF-8</project.build.sourceEncoding >[/align]
[align=left] <jdk.version> 1.6</jdk.version >[/align]
[align=left] </properties>[/align]
[align=left] <name> com.lin.ssh.demo</name >[/align]
[align=left] <url> http://maven.apache.org</url >[/align]
[align=left] <dependencies>[/align]
[align=left] <!-- struts2 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-core</artifactId >[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-spring-plugin </artifactId>[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-json- plugin</ artifactId>[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-dwr- plugin</ artifactId>[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-rest-plugin </artifactId>[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-javatemplates -plugin</artifactId >[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-jfreechart -plugin</artifactId >[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.struts</groupId >[/align]
[align=left] <artifactId> struts2-convention-plugin </artifactId>[/align]
[align=left] <version> ${struts2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- hibernate -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.hibernate</groupId >[/align]
[align=left] <artifactId> hibernate-core </artifactId>[/align]
[align=left] <version> ${hibernate.version}</version >[/align]
<!-- 因为struts2 中也有 javassist,所以要排除
-->
[align=left] <exclusions>[/align]
[align=left] <exclusion>[/align]
[align=left] <groupId> javassist</groupId >[/align]
[align=left] <artifactId> javassist</artifactId >[/align]
[align=left] </exclusion>[/align]
[align=left] </exclusions>[/align]
[align=left] </dependency>[/align]
[align=left] <!-- mybaits -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.mybatis</groupId >[/align]
[align=left] <artifactId> mybatis</artifactId >[/align]
[align=left] <version> ${mybatis.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- JDBC驱动 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> mysql</groupId >[/align]
[align=left] <artifactId> mysql-connector-java </artifactId>[/align]
[align=left] <version> ${mysql.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- spring相关 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-core</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-beans</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-context</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-jdbc </artifactId>[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-web</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-webmvc </artifactId>[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-aop </artifactId>[/align]
[align=left] <version> ${spring.version}</version >[/align]
</dependency>
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-tx </artifactId>[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-orm </artifactId>[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-context-support</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-jms </artifactId>[/align]
<version> ${spring.version}</version >
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework.security</groupId >[/align]
[align=left] <artifactId> spring-security-core</artifactId >[/align]
[align=left] <version> 3.2.4.RELEASE</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 日志库 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-logging</groupId >[/align]
[align=left] <artifactId> commons-logging</artifactId >[/align]
[align=left] <version> ${commons-logging.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> log4j</groupId >[/align]
[align=left] <artifactId> log4j</artifactId >[/align]
[align=left] <version> ${log4j.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.slf4j</groupId >[/align]
[align=left] <artifactId> slf4j-log4j12</artifactId >[/align]
[align=left] <version> ${slf4j.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.slf4j</groupId >[/align]
[align=left] <artifactId> slf4j-api </artifactId>[/align]
[align=left] <version> ${slf4j.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 依赖的WEB类库 TOMCAT环境注释[/align]
[align=left] <dependency>[/align]
[align=left] <groupId>javax.servlet</groupId>[/align]
[align=left] <artifactId>javax.servlet- api</artifactId>[/align]
[align=left] <version>3.1.0</version>[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId>javax.servlet</groupId>[/align]
[align=left] <artifactId> servlet-api </artifactId>[/align]
[align=left] <version>${ servlet-api.version}</version>[/align]
[align=left] </dependency>-->[/align]
[align=left] <!--⑤ 依赖的测试类库-->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.springframework</groupId >[/align]
[align=left] <artifactId> spring-test</artifactId >[/align]
[align=left] <version> ${spring.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> junit</groupId >[/align]
[align=left] <artifactId> junit</artifactId >[/align]
[align=left] <version> ${junit.version}</version >[/align]
[align=left] <scope> test</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.testng</groupId >[/align]
[align=left] <artifactId> testng</artifactId >[/align]
[align=left] <version> ${testng.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 连接池 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.alibaba</groupId >[/align]
[align=left] <artifactId> druid</artifactId >[/align]
[align=left] <version> ${druid.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.jolbox</groupId >[/align]
[align=left] <artifactId> bonecp-spring </artifactId>[/align]
[align=left] <version> ${bonecp.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.jolbox</groupId >[/align]
[align=left] <artifactId> bonecp</artifactId >[/align]
[align=left] <version> ${bonecp.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.mchange</groupId >[/align]
[align=left] <artifactId> c3p0</artifactId >[/align]
[align=left] <version> ${c3p0.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- shiro -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-core </artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-web </artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-spring </artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-ehcache</artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-aspectj</artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.shiro</groupId >[/align]
[align=left] <artifactId> shiro-quartz </artifactId>[/align]
[align=left] <version> ${shiro.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 模板技术 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.freemarker</groupId >[/align]
[align=left] <artifactId> freemarker</artifactId >[/align]
[align=left] <version> ${freemarker.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.velocity</groupId >[/align]
[align=left] <artifactId> velocity</artifactId >[/align]
[align=left] <version> ${velocity.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] [/align]
[align=left] <!-- 依赖的公共类库-->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-dbcp2</artifactId >[/align]
[align=left] <version> ${commons-dbcp2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-pool2</artifactId >[/align]
[align=left] <version> ${commons-pool2.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-io </artifactId>[/align]
[align=left] <version> ${commons-io.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-lang3</artifactId >[/align]
[align=left] <version> ${commons-lang3.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-proxy </artifactId>[/align]
[align=left] <version> 1.0</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
<groupId> org.apache.commons</groupId >
[align=left] <artifactId> commons-jexl </artifactId>[/align]
[align=left] <version> 2.1.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-exec </artifactId>[/align]
[align=left] <version> 1.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-compress</artifactId >[/align]
[align=left] <version> 1.8</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-daemon</artifactId >[/align]
[align=left] <version> 1.0.9</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-math</artifactId >[/align]
[align=left] <version> 2.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-collections4</artifactId >[/align]
[align=left] <version> 4.0</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.kuali.commons</groupId >[/align]
[align=left] <artifactId> commons-beanutils </artifactId>[/align]
[align=left] <version> 1.8.3-kuali-4 </version>[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-dbutils </groupId>[/align]
[align=left] <artifactId> commons-dbutils </artifactId>[/align]
[align=left] <version> 1.5</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 缓存 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> net.sf.ehcache</groupId >[/align]
[align=left] <artifactId> ehcache</artifactId >[/align]
[align=left] <version> 2.8.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.googlecode.xmemcached</groupId >[/align]
[align=left] <artifactId> xmemcached</artifactId >[/align]
[align=left] <version> 1.4.3</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> opensymphony</groupId >[/align]
[align=left] <artifactId> oscache</artifactId >[/align]
[align=left] <version> 2.4.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- cglib 与asm -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> cglib</groupId >[/align]
[align=left] <artifactId> cglib-nodep</artifactId>[/align]
[align=left] <version> ${cglib.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> cglib</groupId >[/align]
[align=left] <artifactId> cglib</artifactId >[/align]
[align=left] <version> ${cglib.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm</artifactId >[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-commons </artifactId>[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-util</artifactId>[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-all</artifactId >[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-analysis </artifactId>[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-tree</artifactId >[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.ow2.asm </groupId>[/align]
[align=left] <artifactId> asm-debug-all </artifactId>[/align]
[align=left] <version> ${asm.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- 其他 -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.alibaba</groupId >[/align]
[align=left] <artifactId> fastjson</artifactId >[/align]
[align=left] <version> ${fastjson.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.aspectj</groupId >[/align]
[align=left] <artifactId> aspectjweaver</artifactId >[/align]
[align=left] <version> ${aspectjweaver.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> dom4j</groupId >[/align]
[align=left] <artifactId> dom4j</artifactId >[/align]
[align=left] <version> ${dom4j.version}</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.belerweb</groupId >[/align]
[align=left] <artifactId> pinyin4j</artifactId >[/align]
[align=left] <version> 2.5.0</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> com.darwinsys</groupId >[/align]
[align=left] <artifactId> hirondelle-date4j </artifactId>[/align]
[align=left] <version> 1.5.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> net.sourceforge.htmlunit</groupId >[/align]
[align=left] <artifactId> htmlunit</artifactId >[/align]
[align=left] <version> 2.14</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> net.sourceforge.jwebunit</groupId >[/align]
[align=left] <artifactId> jwebunit-htmlunit-plugin</artifactId >[/align]
[align=left] <version> 3.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> net.sourceforge.javacsv</groupId >[/align]
[align=left] <artifactId> javacsv</artifactId >[/align]
[align=left] <version> 2.0</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.jsoup</groupId >[/align]
[align=left] <artifactId> jsoup</artifactId >[/align]
[align=left] <version> 1.7.3</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.commons</groupId >[/align]
[align=left] <artifactId> commons-email</artifactId >[/align]
[align=left] <version> 1.3.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-beanutils </groupId>[/align]
[align=left] <artifactId> commons-beanutils </artifactId>[/align]
[align=left] <version> 1.9.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-collections</groupId >[/align]
[align=left] <artifactId> commons-collections</artifactId >[/align]
[align=left] <version> 3.2.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-configuration</groupId >[/align]
[align=left] <artifactId> commons-configuration</artifactId >[/align]
[align=left] <version> 1.10</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-dbcp </groupId>[/align]
[align=left] <artifactId> commons-dbcp </artifactId>[/align]
[align=left] <version> 1.4</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-fileupload </groupId>[/align]
[align=left] <artifactId> commons-fileupload</artifactId >[/align]
[align=left] <version> 1.3.1</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.httpcomponents</groupId >[/align]
[align=left] <artifactId> httpclient</artifactId >[/align]
[align=left] <version> 4.3.4</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> commons-validator</groupId >[/align]
[align=left] <artifactId> commons-validator</artifactId >[/align]
[align=left] <version> 1.4.0</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> joda-time</groupId >[/align]
[align=left] <artifactId> joda-time</artifactId >[/align]
[align=left] <version> 2.2</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.activation</groupId >[/align]
[align=left] <artifactId> activation</artifactId >[/align]
[align=left] <version> 1.0.2</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.xml</groupId >[/align]
[align=left] <artifactId> jaxrpc-api</artifactId >[/align]
[align=left] <version> 1.1</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.mail</groupId >[/align]
[align=left] <artifactId> mail</artifactId >[/align]
[align=left] <version> 1.3.1</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.xml</groupId >[/align]
[align=left] <artifactId> namespace</artifactId >[/align]
[align=left] <version> 1.0.1</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> xerces</groupId >[/align]
[align=left] <artifactId> xmlParserAPIs</artifactId >[/align]
[align=left] <version> 2.6.2</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> xml-apis</groupId >[/align]
[align=left] <artifactId> xml-apis</artifactId >[/align]
[align=left] <version> 1.4.01</version >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> org.apache.openejb</groupId >[/align]
[align=left] <artifactId> javaee-api</artifactId >[/align]
[align=left] <version> 5.0-1</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.faces</groupId >[/align]
[align=left] <artifactId> jsf-api</artifactId >[/align]
[align=left] <version> 1.2_04</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.servlet</groupId >[/align]
[align=left] <artifactId> jstl</artifactId >[/align]
[align=left] <version> 1.2</version >[/align]
[align=left] <scope> compile</scope >[/align]
[align=left] </dependency>[/align]
[align=left] <!-- [/align]
[align=left] <dependency>[/align]
[align=left] <groupId>javax.servlet.jsp</groupId>[/align]
[align=left] <artifactId>jsp-api</artifactId>[/align]
[align=left] <version>2.1</version>[/align]
[align=left] <scope>compile</scope>[/align]
[align=left] </dependency>[/align]
[align=left] -->[/align]
[align=left] <dependency>[/align]
[align=left] <groupId> javax.faces</groupId >[/align]
[align=left] <artifactId> jsf-impl</artifactId >[/align]
[align=left] <version> 1.2_04</version >[/align]
[align=left] <scope> provided</scope >[/align]
[align=left] </dependency>[/align]
[align=left] </dependencies>[/align]
[align=left]</project>[/align]
4 applicationContext.xml 配置
[align=left] <?xml version="1.0" encoding= "UTF-8"?>[/align]
[align=left]<beans xmlns="http://www.springframework.org/schema/beans"[/align]
[align=left] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"[/align]
[align=left] xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"[/align]
[align=left] xsi:schemaLocation="http://www.springframework.org/schema/beans[/align]
[align=left] http://www.springframework.org/schema/beans/spring-beans.xsd[/align] [align=left] http://www.springframework.org/schema/tx[/align] [align=left] http://www.springframework.org/schema/tx/spring-tx.xsd[/align] [align=left] http://www.springframework.org/schema/aop[/align] [align=left] http://www.springframework.org/schema/aop/spring-aop.xsd[/align] [align=left] http://www.springframework.org/schema/context[/align] [align=left] http://www.springframework.org/schema/context/spring-context.xsd"[/align] [align=left] default-autowire="byName" >[/align]
[align=left] <context:property-placeholder location="classpath*:conf/jdbc.properties" />[/align]
[align=left] <context:component-scan base-package="com.lin.ssh.demo.dao" />[/align]
[align=left] <context:component-scan base-package="com.lin.ssh.demo.service" />[/align]
[align=left] <context:component-scan base-package="com.lin.ssh.demo.service.impl" />[/align]
<!--
配置系统的数据源 -->
[align=left] <bean id= "dataSource" class="com.alibaba.druid.pool.DruidDataSource"[/align]
[align=left] init-method="init" destroy-method= "close">[/align]
[align=left] <property name="driverClassName" value="${jdbc.driver}" />[/align]
[align=left] <property name="url" value="${jdbc.url}" />[/align]
[align=left] <property name="username" value="${jdbc.username}" />[/align]
[align=left] <property name="password" value="${jdbc.password}" />[/align]
[align=left] <property name="filters" value="stat" />[/align]
[align=left] <property name="maxActive" value="10" />[/align]
[align=left] <property name="initialSize" value="1" />[/align]
[align=left] <property name="maxWait" value="60000" />[/align]
[align=left] <property name="minIdle" value="1" />[/align]
[align=left] <property name="timeBetweenEvictionRunsMillis" value="60000" />[/align]
[align=left] <property name="minEvictableIdleTimeMillis" value="300000" />[/align]
<property name="validationQuery" value="SELECT
'x'" />
[align=left] <property name="testWhileIdle" value="true" />[/align]
[align=left] <property name="testOnBorrow" value="false" />[/align]
[align=left] <property name="testOnReturn" value="false" />[/align]
[align=left] <property name="poolPreparedStatements" value="true" />[/align]
[align=left] <property name="maxPoolPreparedStatementPerConnectionSize"[/align]
[align=left] value="50" />[/align]
[align=left] <property name="maxOpenPreparedStatements" value="100" />[/align]
[align=left] </bean>[/align]
<!--
配置hibernate session工厂 -->
[align=left] <bean id= "sessionFactory"[/align]
[align=left] class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" >[/align]
[align=left] <property name="dataSource" ref="dataSource" />[/align]
[align=left] <property name="hibernateProperties" >[/align]
[align=left] <props>[/align]
[align=left] <prop key="hibernate.dialect" >org.hibernate.dialect.MySQL5InnoDBDialect</prop >[/align]
[align=left] <prop key="hibernate.current_session_context_class" >org.springframework.orm.hibernate4.SpringSessionContext[/align]
[align=left] </prop>[/align]
[align=left] <prop key="hibernate.show_sql" >true</ prop>[/align]
[align=left] <prop key="hibernate.format_sql" >true</ prop>[/align]
[align=left] <prop key="hibernate.hbm2ddl.auto" >update</ prop>[/align]
[align=left] </props>[/align]
[align=left] </property>[/align]
<!--
自动扫描注解方式配置的 hibernate类文件 -->
[align=left] <property name="packagesToScan" >[/align]
[align=left] <list>[/align]
[align=left] <value> com.lin.ssh.demo.model</value >[/align]
[align=left] </list>[/align]
[align=left] </property>[/align]
<!--
自动扫描hbm方式配置的hibernate 文件和.hbm文件
-->
[align=left] <!--[/align]
[align=left] <property name="mappingDirectoryLocations"> <list>[/align]
<value>classpath:sy/ hbm</value>
</list> </property>
[align=left] -->[/align]
[align=left] </bean>[/align]
[align=left] <bean id= "transactionManager"[/align]
[align=left] class="org.springframework.orm.hibernate4.HibernateTransactionManager" >[/align]
[align=left] <property name="sessionFactory" ref="sessionFactory" />[/align]
[align=left] </bean>[/align]
[align=left] <tx:advice id= "txAdvice" transaction-manager ="transactionManager">[/align]
[align=left] <tx:attributes>[/align]
[align=left] <tx:method name="select*" read-only= "true" />[/align]
[align=left] <tx:method name="get*" read-only= "true" />[/align]
[align=left] <tx:method name="load*" read-only= "true" />[/align]
[align=left] <tx:method name="find*" read-only= "true" />[/align]
[align=left] <tx:method name="query*" read-only= "true" />[/align]
[align=left] <tx:method name="read*" read-only= "true" />[/align]
[align=left] <tx:method name="sync*" />[/align]
[align=left] <tx:method name="*" propagation= "REQUIRED" rollback-for="Exception" />[/align]
[align=left] </tx:attributes>[/align]
[align=left] </tx:advice>[/align]
[align=left] <aop:config proxy-target-class="true" >[/align]
[align=left] <aop:pointcut expression="this(com.lin.ssh.demo.service.IBaseService)"[/align]
[align=left] id= "transactionPointcut" />[/align]
[align=left] <aop:advisor advice-ref="txAdvice" pointcut-ref="transactionPointcut" />[/align]
[align=left] </aop:config>[/align]
[align=left]</beans>[/align]
5 Struts2配置
[align=left]<?xml version="1.0" encoding= "UTF-8" ?>[/align]
[align=left]<!DOCTYPE struts PUBLIC[/align]
"-//Apache Software Foundation//DTD
Struts Configuration 2.3//EN"
[align=left] "http://struts.apache.org/dtds/struts-2.3.dtd" >[/align]
[align=left]<struts>[/align]
[align=left] <!-- 开发模式 -->[/align]
[align=left] <constant name="struts.devMode" value="true" />[/align]
[align=left] <!-- Web运用编码 -->[/align]
[align=left] <constant name="struts.i18n.encoding" value="UTF-8" />[/align]
[align=left] <!--搜索视图资源的路径-->[/align]
[align=left] <constant name="struts.convention.result.path" value="/pages" />[/align]
[align=left] <!--搜索Action资源的包路径-->[/align]
[align=left] <constant name="struts.convention.package.locators" value="web,action" />[/align]
[align=left] <!-- Action扩展名 -->[/align]
[align=left] <constant name="struts.action.extension" value="action,do,htm" />[/align]
[align=left] <!-- Action后缀名 -->[/align]
[align=left] <constant name="struts.convention.action.suffix" value="Action" />[/align]
[align=left] <!-- 指定由spring负责action的创建 -->[/align]
[align=left] <constant name="struts.objectFactory" value="spring" />[/align]
[align=left] <!--[/align]
[align=left] 指定spring框架的装配模式,装配方式有: name, type, auto, and constructor (name[/align]
[align=left] 是默认装配模式)[/align]
[align=left] -->[/align]
[align=left] <constant name="struts.objectFactory.spring.autoWire" value="name" />[/align]
<!-- 该属性指定整合spring时,是否对bean进行缓存,值为true
or false,默认为true -->
[align=left] <constant name="struts.objectFactory.spring.useClassCache" value="true" />[/align]
[align=left] [/align]
<!-- struts配置文件修改后,是否重新加载,开发模式下用 true,生产环境改成false
-->
[align=left] <constant name="struts.configuration.xml.reload" value="true" />[/align]
[align=left] <constant name="struts.serve.static.browserCache" value="false" />[/align]
[align=left] [/align]
<!-- 该属性指定处理 MIME-type multipart/form-data,文件上传
-->
[align=left] <constant name="struts.multipart.parser" value="cos" />[/align]
[align=left] <constant name="struts.multipart.parser" value="pell" />[/align]
[align=left] <constant name="struts.multipart.parser" value="jakarta" />[/align]
<!-- 指定上传文件时的临时目录,默认使用 javax.servlet.context.tempdir
-->
[align=left] <constant name="struts.multipart.saveDir" value="/tmpuploadfiles" />[/align]
[align=left] <!-- 配置文件上传大小上限,现今最大上限为50MB -->[/align]
[align=left] <constant name="struts.multipart.maxSize" value="500971520" />[/align]
<!-- 被 FilterDispatcher使用指定浏览器是否缓存静态内容,测试阶段设置为false,发布阶段设置为true.
-->
[align=left] <constant name="struts.serve.static.browserCache" value="true" />[/align]
[align=left] <!-- 设置是否支持动态方法调用,true为支持,false不支持. -->[/align]
[align=left] <constant name="struts.enable.DynamicMethodInvocation" value="true" />[/align]
<!-- 设置是否可以在action中使用斜线,默认为false不可以,想使用需设置为true.
-->
[align=left] <constant name="struts.enable.SlashesInActionNames" value="true" />[/align]
[align=left] <!-- 是否允许使用表达式语法,默认为true. -->[/align]
[align=left] <constant name="struts.tag.altSyntax" value="true" />[/align]
[align=left] <!-- 设置是否每次请求,都重新加载资源文件,默认值为false. -->[/align]
[align=left] <constant name="struts.i18n.reload" value="false" />[/align]
[align=left] <package name="demoPackage" extends="struts-default" namespace="/demo" >[/align]
[align=left] <global-results>[/align]
[align=left] <result name="success" >/pages/index.jsp</ result>[/align]
[align=left] <result name="login" >/index.jsp</ result>[/align]
[align=left] <result name="error" >/error.jsp</ result>[/align]
[align=left] </global-results>[/align]
[align=left] </package>[/align]
[align=left]</struts>[/align]
[align=left] [/align]
6 web.xml
[align=left]<?xml version="1.0" encoding= "UTF-8"?>[/align]
[align=left]<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"[/align]
[align=left] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"[/align]
[align=left] xsi:schemaLocation="http://java.sun.com/xml/ns/javaee[/align]
[align=left] http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >[/align]
[align=left] <context-param>[/align]
[align=left] <param-name>log4jConfigLocation</param-name>[/align]
[align=left] <param-value>classpath:conf/log4j.properties</param-value>[/align]
[align=left] </context-param>[/align]
[align=left] <context-param>[/align]
[align=left] <param-name>contextConfigLocation</param-name >[/align]
[align=left] <param-value>classpath:conf/applictionContext.xml</param-value>[/align]
[align=left] </context-param>[/align]
[align=left] <listener>[/align]
[align=left] <listener-class> org.springframework.web.util.Log4jConfigListener</listener-class >[/align]
[align=left] </listener>[/align]
[align=left] <listener>[/align]
[align=left] <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class>[/align]
[align=left] </listener>[/align]
[align=left] <listener>[/align]
[align=left] <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class>[/align]
[align=left] </listener>[/align]
[align=left] <listener>[/align]
[align=left] <listener-class> org.springframework.web.util.IntrospectorCleanupListener </listener-class>[/align]
[align=left] </listener>[/align]
[align=left] <filter>[/align]
[align=left] <filter-name> encodingFilter</filter-name>[/align]
[align=left] <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class>[/align]
[align=left] <init-param>[/align]
[align=left] <param-name> encoding</param-name>[/align]
[align=left] <param-value> UTF-8</param-value>[/align]
[align=left] </init-param>[/align]
[align=left] </filter>[/align]
[align=left] <filter-mapping>[/align]
[align=left] <filter-name>encodingFilter</filter-name>[/align]
[align=left] <url-pattern>/*</url-pattern>[/align]
[align=left] </filter-mapping>[/align]
[align=left] <filter>[/align]
[align=left] <filter-name>struts2</filter-name >[/align]
[align=left] <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class>[/align]
[align=left] </filter>[/align]
[align=left] <filter-mapping>[/align]
[align=left] <filter-name>struts2</filter-name >[/align]
[align=left] <url-pattern> /*</ url-pattern>[/align]
[align=left] </filter-mapping>[/align]
[align=left] <welcome-file-list>[/align]
[align=left] <welcome-file> login.html</welcome-file >[/align]
[align=left] </welcome-file-list>[/align]
[align=left]</web-app>[/align]
7 UserAction
[align=left] [/align]
package com.lin.ssh.demo.web.action;
import java.util.List;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import com.lin.ssh.demo.model.UserBean;
import com.lin.ssh.demo.service.IUserService;
import com.opensymphony.xwork2.ActionSupport;
//@ParentPackage("demoPackage")
@Namespace("/demo")
@Component
@Scope("prototype")
@Action("userAction")
public class UserAction extends ActionSupport {
private IUserService userService;
private UserBean user;
private List<UserBean> userList;
/**
* http://127.0.0.1:8080/ssh/demo/regUser!index.do
* @return
*/
@Action(value = "regUser", results = {
@Result(name = "success", location = "/pages/login.jsp"),
@Result(name = "input", location = "/pages/error.jsp") })
public String index() {
System.out.println("----reg page----");
return SUCCESS;
}
@Action(value = "saveUser", results = {
@Result(name = "list", location = "/pages/list.jsp"),
@Result(name = "input", location = "/pages/error.jsp"),
@Result(name = "success", location = "/pages/index.jsp")})
public String save() {
System.out.println("----save----");
System.out.println("===="+user);
try {
userService.saveUser(user);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
}
/**
* http://127.0.0.1:8080/ssh/demo/userAction!list.do
*/
public void list() {
System.out.println("----list----");
System.out.println(user);
try {
userList = userService.queryUserAll();
System.out.println("userList ==" + userList.get(0).toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return SUCCESS;
}
public List<UserBean> getUserList() {
return userList;
}
public void setUserList(List<UserBean> userList) {
this.userList = userList;
}
public IUserService getUserService() {
return userService;
}
@Autowired
public void setUserService(IUserService userService) {
this.userService = userService;
}
public UserBean getUser() {
return user;
}
public void setUser(UserBean user) {
this.user = user;
}
}
8 UserDAO
package com.lin.ssh.demo.dao;
import java.util.List;
import com.lin.ssh.demo.model.UserBean;
public interface IUserDAO {
public void save(UserBean entity) throws Exception;
public List<UserBean> find(Class<UserBean> clazz) throws Exception;
}
package com.lin.ssh.demo.dao;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.lin.ssh.demo.model.UserBean;
@Repository("userDao")
public class UserDAO extends DaoSupport implements IUserDAO {
/**
* 保存对象
*
* @param entity
* @throws Exception
*/
@Override
public void save(UserBean entity) throws Exception {
super.save(entity);
}
@Override
public List<UserBean> find(Class clazz) throws Exception {
return super.findAll(clazz);
}
}
package com.lin.ssh.demo.dao;
import static org.hibernate.criterion.Restrictions.eq;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
/**
*
* @author linhz
*
*/
public class DaoSupport {
private SessionFactory sessionFactory;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
protected Session getSession() {
return sessionFactory.getCurrentSession();
}
protected void save(Object obj) {
getSession().save(obj);
}
protected <T> T get(Class<T> clazz, int id) {
return (T) getSession().get(clazz, id);
}
protected <T> List<T> findByProperty(Class<T> clazz, String property,
Object value) {
return getSession().createCriteria(clazz).add(eq(property, value))
.list();
}
protected <T> List<T> findAll(Class<T> clazz) {
return getSession().createCriteria(clazz).list();
}
protected void update(Object obj) {
getSession().update(obj);
}
protected void delete(Class clazz, int id) {
getSession().delete(get(clazz, id));
}
protected void delete(Object obj) {
getSession().delete(obj);
}
}
9 Model POJO
[align=left]package com.lin.ssh.demo.model;[/align]
[align=left]import javax.persistence.Column;[/align]
[align=left]import javax.persistence.Entity;[/align]
[align=left]import javax.persistence.GeneratedValue;[/align]
[align=left]import javax.persistence.Id;[/align]
[align=left]import javax.persistence.Table;[/align]
[align=left]import static javax.persistence.GenerationType.IDENTITY;[/align]
[align=left]@Entity[/align]
[align=left]@Table(name = "tb_demo", schema = "test")[/align]
public class UserBean implements java.io.Serializable
{
[align=left] @Id[/align]
@GeneratedValue(strategy
= IDENTITY)
@Column(name
= "id", unique = true,
nullable = false)
[align=left] private Long id;[/align]
@Column(name
= "username", length = 32)
[align=left] private String username;[/align]
@Column(name
= "password", length = 16)
[align=left] private String password;[/align]
public UserBean()
{
[align=left] }[/align]
public UserBean(String
username, String password) {
this.username =
username;
this.password =
password;
[align=left] }[/align]
public Long
getId() {
[align=left] return id ;[/align]
[align=left] }[/align]
public void setId(Long
id) {
this.id =
id;
[align=left] }[/align]
public String
getUsername() {
[align=left] return username ;[/align]
[align=left] }[/align]
public void setUsername(String
username) {
this.username =
username;
[align=left] }[/align]
public String
getPassword() {
[align=left] return password ;[/align]
[align=left] }[/align]
public void setPassword(String
password) {
this.password =
password;
[align=left] }[/align]
[align=left] @Override[/align]
public String
toString() {
[align=left] return "User{" +[/align]
[align=left] "id=" + id +[/align]
",
username='" + username + '\'' +
",
password='" + password + '\'' +
[align=left] '}';[/align]
[align=left] }[/align]
[align=left]}[/align]
10 UserService
[align=left]package com.lin.ssh.demo.service;[/align]
public interface IBaseService
{
[align=left]}[/align]
[align=left]package com.lin.ssh.demo.service;[/align]
[align=left]import java.util.List;[/align]
[align=left]import com.lin.ssh.demo.model.UserBean;[/align]
public interface IUserService extends IBaseService
{
public void saveUser(UserBean
user) throws Exception;
public List<UserBean>
queryUserAll() throws Exception;
[align=left]}[/align]
package com.lin.ssh.demo.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.lin.ssh.demo.dao.UserDAO;
import com.lin.ssh.demo.model.UserBean;
import com.lin.ssh.demo.service.IUserService;
@Service("userService")
public class UserServiceImpl implements IUserService {
@Resource
private UserDAO userDao;
public void saveUser(UserBean user) throws Exception {
userDao.save(user);
}
public List<UserBean> queryUserAll() throws Exception {
return userDao.find(UserBean.class);
}
}
11 测试页面 index.jsp
[align=left]<%@ page contentType= "text/html;charset=UTF-8" language= "java"%>[/align]
[align=left]<%[/align]
[align=left] String path = request.getContextPath();[/align]
[align=left] String contextPath = request.getScheme() + "://"[/align]
+ request.getServerName() + ":" +
request.getServerPort()
[align=left] + path + "/";[/align]
[align=left]%>[/align]
[align=left]<html>[/align]
[align=left] <head>[/align]
[align=left] <title></ title>[/align]
[align=left] </head>[/align]
[align=left] <body>[/align]
[align=left] <form action=" <%=contextPath%> /demo/saveUser!save.action" method="get" >[/align]
[align=left] <br>[/align]
[align=left] 用户名:[/align]
[align=left] <input type="text" name="user.username" />[/align]
[align=left] <br>[/align]
[align=left] 密码:[/align]
[align=left] <input type="text" name="user.password" />[/align]
[align=left] <input type="submit" name="保存" />[/align]
[align=left] </form>[/align]
[align=left] </body>[/align]
[align=left]</html>[/align]
12 SQL语句脚本
use test ;
CREATE TABLE `tb_demo` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(32) DEFAULT NULL,
`password` varchar(16) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
13 测试
webcontent部署为:ssh
访问地址:
http://127.0.0.1:8080/ssh/demo/regUser!index.do
数据正常插入
相关文章推荐
- Struts2.3+Spring3.2.8+Hibernate4.1全注解配置
- Struts2.3+Spring3.2.8+Hibernate4.1全注解配置 2014-04-24 11:45:53
- Struts2.3+Spring3.2.8+Hibernate4.1全注解配置
- Struts2.3+Spring3.2.8+Hibernate4.1全注解配置
- struts 多文件上传 annotation注解(零配置)+ ajaxfileupload + 异步 版本
- Struts2零配置开发(注解Annotation的使用)二
- Struts2 注解配置 (struts.convention-plugn)
- struts中采用注解配置Action
- Struts2零配置开发(注解Annotation的使用)一的简介与内容
- Struts 注解配置例子及redirect,redirectAction,chain的区别
- struts2+spring3+hibernate3.5简单配置——加入注解
- struts2.3.16 convention 零配置 bug
- Struts 注解配置例子及redirect,redirectAction,chain的区别
- Struts-2.3.16 环境配置
- struts 注解的配置
- Struts-2.3.16 环境配置
- [struts2]Struts2.2 Annotation 注解配置Action
- Struts 注解配置例子及redirect,redirectAction,chain的区别
- struts中采用注解配置Action
- struts2.1.8+spring2.5+hibernate3.2注解配置