======================================================
Struts2 + Spring + Hibernate所需要的基本JAR文件
(01)antlr-2.7.5H3.jar
否则会出现异常:java.lang.NoClassDefFoundError: antlr/ANTLRException
(02)commons-collections-3.1.jar
否则会出现异常:java.lang.NoClassDefFoundError: org/apache/commons/collections/map/LRUMap
(03)javassist-3.1.jar
否则会出现异常:java.lang.NoClassDefFoundError: javassist/util/proxy/MethodFilter
(04)jta.jar
否则会出现异常:java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
(05)slf4j-api-1.5.2.jar , slf4j-nop-1.5.2.jar
(06)spring.jar
(07)hibernate-3.1.jar
(08)struts2-core-2.0.6.jar
(09)xwork-2.0.1.jar
(10)dom4j-1.6.1.jar
(11)commons-logging-1.1.jar
(12)freemarker-2.3.8.jar
(13)ognl-2.6.11.jar
=====================================================
bean包下java文件 User.java, User.hbm.xml
User.java
package bean;
import java.io.Serializable;
/**
* 2009-08-21
* JavaBean
* @author caoyx
*
*/
public class User implements Serializable{
private static final long serialVersionUID = 1L;
private int id = 0;
private String name = "";
private String password = "";
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getPassword(){
return password;
}
public void setPassword(String password){
this.password = password;
}
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
}
User.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="bean.User" table="user">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name" column="name"/>
<property name="password" column="password"/>
</class>
</hibernate-mapping>
=================================================
action包中BaseAction.java , LoginAction.java
BaseAction.java
package action;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import dao.LogicDAO;
import com.opensymphony.xwork2.Action;
public abstract class BaseAction implements Action{
public LogicDAO logicDAO(){
ServletContext servletContext = ServletActionContext.getServletContext();
WebApplicationContext webApplicationContext =
WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
return (LogicDAO)webApplicationContext.getBean("logicDAO");
}
public HttpServletRequest request(){
return ServletActionContext.getRequest();
}
public HttpSession session(){
return ServletActionContext.getRequest().getSession();
}
public ServletContext application(){
return ServletActionContext.getServletContext();
}
public HttpServletResponse response(){
return ServletActionContext.getResponse();
}
}
LoginAction.java
package action;
import bean.User;
public class LoginAction extends BaseAction{
//private User user = new User();// ok
private User user = null;// ok
public String execute() throws Exception{
User resultUser=this.logicDAO().getUserDAO().Login(user);
if(null == resultUser){
return "fail";
}
return SUCCESS;
}
public User getUser(){
return user;
}
public void setUser(User user){
this.user = user;
}
}
=======================================================
dao包LoginDAO.java , UserDAO.java
LoginDAO.java
package dao;
public class LogicDAO{
private UserDAO userDAO;
public UserDAO getUserDAO(){
return userDAO;
}
public void setUserDAO(UserDAO userDAO){
this.userDAO = userDAO;
}
}
UserDAO.java
package dao;
import java.util.List;
import org.springframework.orm.hibernate3.HibernateTemplate;
import bean.User;
public class UserDAO {
private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public User Login(User user) {
List list = hibernateTemplate.find(
"from User u where u.name='"
+ user.getName()
+ "' and u.password = '"
+ user.getPassword()
+ "'");
if (list != null && list.size() == 1) {
return (User) list.get(0);
} else {
return null;
}
}
}
========================================================
SRC下面 struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="default" extends="struts-default">
<action name="login" class="action.LoginAction">
<!-- <result name="success">/WEB-INF/jsp/index.jsp</result> -->
<result name="success">/success.jsp</result>
<result name="fail">/fail.jsp</result>
</action>
</package>
</struts>
========================================================
WebContent下面 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
===================================================
WebContent下面 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/sshtest?autoReconnect=true&useUnicode=true&characterEncoding=gbk</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>123456</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
destroy-method="close">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>bean/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">
false
</prop>
</props>
</property>
</bean>
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="logicDAO" class="dao.LogicDAO">
<property name="userDAO">
<ref bean="userDAO"/>
</property>
</bean>
<bean id="userDAO"
class="dao.UserDAO">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate"/>
</property>
</bean>
</beans>
====================================================
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>登陆页面</title>
</head>
<body>
<form action="login.action" method="post">
<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CDCDCD">
<tr bgcolor="#FAFAFA">
<td>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>名 称<input type="text" name="user.name" class="text"/></td>
</tr>
<tr>
<td>密 码<input type="password" name="user.password" class="text"/></td>
</tr>
<!--
<tr>
<td>验证码<input type="text" name="validateCode" class="text" style="width:38px;"/><img src="util/imgcode.jsp"/></td>
</tr>
-->
<tr>
<td align="right"><input type="submit" value="登陆" style="border-style:none; background-color:#FAFAFA"/></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
success.jsp , fail.jsp 省略