第四步
配置web.xml 代码如下 注意注释:
Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"    
  3.     xmlns="http://java.sun.com/xml/ns/javaee"    
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    
  6.     [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]">  
  7.        
  8.             <!-- struts2的常规配置 -->  
  9.     <filter>  
  10.         <filter-name>struts2</filter-name>  
  11.         <filter-class>  
  12.             org.apache.struts2.dispatcher.FilterDispatcher   
  13.         </filter-class>  
  14.     </filter>  
  15.     <filter-mapping>  
  16.         <filter-name>struts2</filter-name>  
  17.         <url-pattern>/*</url-pattern>  
  18.     </filter-mapping>  
  19.        
  20.         <!--  在web应用启动是自动形成一个spring容器 -->  
  21.     <listener>    
  22.         <listener-class>  
  23.             org.springframework.web.context.ContextLoaderListener   
  24.         </listener-class>  
  25.     </listener>  
  26.   <welcome-file-list>  
  27.     <welcome-file>index.jsp</welcome-file>  
  28.   </welcome-file-list>  
  29. </web-app>  


第五步:
从视图层入手;在webroot目录下新建一个save.jsp文件
如下代码;
Jsp代码 复制代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>   
  2. <%@ taglib prefix="s" uri="/struts-tags" %>   
  3.   
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   
  5. <html>   
  6.   <head>   
  7.        
  8.     <title>My JSP 'save.jsp' starting page</title>   
  9.   
  10.   
  11.   </head>   
  12.      
  13.   <body>   
  14.     <s:form action='saveUser'>   
  15.     <s:textfield name="user.username" label="用名"></s:textfield>   
  16.     <s:textfield name="user.password" label="密码"></s:textfield>   
  17.         <s:submit></s:submit>   
  18.     </s:form>   
  19.   </body>   
  20. </html>  

接下去顺水推舟,自然开发action,及控制层
新建包com.test.action.user
新建一个SaveUserAction.java 代码初步如下:
Java代码 复制代码
  1. package com.test.action.user;   
  2.   
  3. import com.opensymphony.xwork2.ActionSupport;   
  4. import com.test.bean.User;   
  5.   
  6. public class SaveUserAction extends ActionSupport {   
  7.   
  8.     private User user;   
  9.   
  10.     public User getUser() {   
  11.         return user;   
  12.     }   
  13.     public void setUser(User user) {   
  14.         this.user = user;   
  15.     }   
  16.     @Override  
  17.     public String execute() throws Exception    
  18.     {   
  19.   
  20.         return SUCCESS;   
  21.     }      
  22. }  

于是,自然我们要新建一个bean
新建包com.test.bean 新建User.java
Java代码 复制代码
  1. package com.test.bean;   
  2.   
  3. public class User {   
  4.   
  5.     private Integer id;   
  6.     private String username;   
  7.     private String password;   
  8.     public Integer getId() {   
  9.         return id;   
  10.     }   
  11.     public void setId(Integer id) {   
  12.         this.id = id;   
  13.     }   
  14.     public String getUsername() {   
  15.         return username;   
  16.     }   
  17.     public void setUsername(String username) {   
  18.         this.username = username;   
  19.     }   
  20.     public String getPassword() {   
  21.         return password;   
  22.     }   
  23.     public void setPassword(String password) {   
  24.         this.password = password;   
  25.     }   
  26.        
  27. }  


好了,现在我们先把控制层的action放在这里,开发业务层和持久层(DAO)

新建包com.test.dao
建类UserDAO.java
代码如下:
Java代码 复制代码
  1. package com.test.dao;   
  2.   
  3. import java.util.List;   
  4.   
  5. import com.test.bean.User;   
  6.   
  7. public interface UserDAO    
  8. {   
  9.            
  10.     public void saveUser(User user);   
  11.        
  12.     public void removeUser(User user);   
  13.        
  14.     public User findUserById(Integer id);   
  15.        
  16.     public List<User> findAllUsers();   
  17.        
  18.     public void updateUser(User user);   
  19. }  
这是一个接口
在开发dao的实现类
新建包com.test.dao.impl
建类UserDAOImpl.java
代码:
Java代码 复制代码
  1. package com.test.dao.impl;   
  2.   
  3. import java.util.List;   
  4.   
  5. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;   
  6.   
  7. import com.test.bean.User;   
  8. import com.test.dao.UserDAO;   
  9. /**  
  10.  *   
  11.  * @author Administrator  
  12.  *  这个dao试用了hibernate的数据库操作语句  
  13.  */  
  14. public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {   
  15.   
  16.     /*  
  17.      * 获取所有数据  
  18.      */  
  19.     public List<User> findAllUsers() {   
  20.         String hql = "from User user order by user.id desc";   
  21.         return (List<User>) this.getHibernateTemplate().find(hql);   
  22.     }   
  23.   
  24.     /*  
  25.      * 获取指定的数据  
  26.      */  
  27.     public User findUserById(Integer id) {   
  28.         User user = (User) this.getHibernateTemplate().get(User.class, id);   
  29.         return user;   
  30.     }   
  31.   
  32.     public void removeUser(User user) {   
  33.   
  34.         this.getHibernateTemplate().delete(user);   
  35.     }   
  36.   
  37.     public void saveUser(User user) {   
  38.   
  39.          this.getHibernateTemplate().save(user);   
  40.     }   
  41.   
  42.     public void updateUser(User user) {   
  43.   
  44.         this.getHibernateTemplate().update(user);   
  45.     }   
  46.   
  47. }  

好了,数据持久层(dao)开发好了,按顺序,现在应该开发业务层了,
新建包com.test.service
建类UserService.java
代码:
Java代码 复制代码
  1. package com.test.service;   
  2.   
  3. import java.util.List;   
  4.   
  5. import com.test.bean.User;   
  6.   
  7. public interface UserService    
  8. {   
  9.         public List<User> findAll();   
  10.            
  11.         public void save(User user);   
  12.            
  13.         public void delete(User user);   
  14.            
  15.         public User findById(Integer id);   
  16.            
  17.         public void update(User user);   
  18. }  
这是一个接口类
然后写实现类
新建包
com.test.service.impl
建类
UserServiceImpl.java
Java代码 复制代码
  1. package com.test.service.impl;   
  2.   
  3. import java.util.List;   
  4.   
  5. import com.test.bean.User;   
  6. import com.test.dao.UserDAO;   
  7. import com.test.service.UserService;   
  8.   
  9. public class UserServiceImpl implements UserService {   
  10.   
  11.     private UserDAO userDao;   
  12.        
  13.     public UserDAO getUserDao() {   
  14.         return userDao;   
  15.     }   
  16.   
  17.     public void setUserDao(UserDAO userDao) {   
  18.         this.userDao = userDao;   
  19.     }   
  20.          //服务层的方法    
  21.        
  22.     public void delete(User user)   
  23.     {   
  24.          this.userDao.removeUser(user);   
  25.     }   
  26.   
  27.     public List<User> findAll() {   
  28.         return this.userDao.findAllUsers();   
  29.     }   
  30.   
  31.     public User findById(Integer id) {   
  32.            
  33.         return this.userDao.findUserById(id);   
  34.     }   
  35.   
  36.     public void save(User user)    
  37.     {   
  38.         this.userDao.saveUser(user);   
  39.     }   
  40.   
  41.     public void update(User user)    
  42.     {   
  43.         this.userDao.updateUser(user);   
  44.     }   
  45.   
  46. }