Struts2 Spring3 Hibernate3 菜鸟教程 集成xml版本-2

依赖流程

控制器action依赖service层
业务逻辑层service依赖dao层
持久层dao依赖spring提供的类

UserDAOImpl

/**
 * @author JE哥
 * @email [email protected]
 * @description:dao接口实现
 */
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {

  @Override
  public void save(User user) {
    getHibernateTemplate().save(user);
  }

  @Override
  public void update(User user) {
    getHibernateTemplate().update(user);
  }

  @Override
  public void delete(Long id) {
    User user = findByKey(id);
    if (user != null) {
      getHibernateTemplate().delete(user);
    }
  }

  @Override
  public User findByKey(Long id) {
    return getHibernateTemplate().get(User.class, id);
  }

  @Override
  public List<User> findAll() {
    return getHibernateTemplate().loadAll(User.class);
  }

}

UserServiceImpl

/**
 * @author JE哥
 * @email [email protected]
 * @description:service接口实现
 */
public class UserServiceImpl implements UserService {
  private UserDAO userDAO;

  public void setUserDAO(UserDAO userDAO) {
    this.userDAO = userDAO;
  }

  @Override
  public void save(User user) {
    userDAO.save(user);
  }

  @Override
  public void update(User user) {
    userDAO.update(user);
  }

  @Override
  public void delete(Long id) {
    userDAO.delete(id);
  }

  @Override
  public User findByKey(Long id) {
    return userDAO.findByKey(id);
  }

  @Override
  public List<User> findAll() {
    return userDAO.findAll();
  }

}

UserAction

/**
 * @author JE哥
 * @email [email protected]
 * @description:控制器类
 */
public class UserAction extends ActionSupport {
  private UserService userService;
  private User user;

  public void setUserService(UserService userService) {
    this.userService = userService;
  }

  @Override
  public String execute() throws Exception {
    ActionContext.getContext().put("users", userService.findAll());
    return SUCCESS;
  }

  @Override
  public String input() throws Exception {
    if (user != null && user.getId() != null) {
      user = userService.findByKey(user.getId());
    }
    return INPUT;
  }

  public String save() throws Exception {
    if (user == null) {
      return execute();
    }
    if (user.getId() == null) {
      userService.save(user);
    } else {
      userService.update(user);
    }
    return "redirect";
  }

  public String delete() throws Exception {
    if (user != null && user.getId() != null) {
      userService.delete(user.getId());
    }
    return "redirect";
  }

  public User getUser() {
    return user;
  }

  public void setUser(User user) {
    this.user = user;
  }

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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">

    <display-name>struts2-spring3-hibernate3-xml</display-name>

    <!-- 告诉spring从哪里加载配置文件 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <!-- 初始化spring容器 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

userList.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>用户列表</title>
</head>
<body>
<s:a href="user_input.action">添加</s:a>
    <table border="1">
        <tr>
            <th>编号</th>
            <th>名称</th>
            <th>年龄</th>
            <th>操作</th>
        </tr>
        <s:iterator value="#users">
            <tr>
                <td><s:property value="id" /></td>
                <td><s:property value="name" /></td>
                <td><s:property value="age" /></td>
                <td>
                 <s:a href="user_input.action?user.id=%{id}">编辑</s:a>
                 <s:a href="user_delete.action?user.id=%{id}">删除</s:a>
                </td>
            </tr>
        </s:iterator>
    </table>
</body>
</html>

userInput.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>用户列表</title>
</head>
<body>
    <s:form action="user_save">
      <s:hidden name="user.id"/>
      <s:textfield label="用户名" name="user.name"/><br/>
      <s:textfield label="年龄" name="user.age"/><br/>
      <s:submit value="保存"/>
    </s:form>
</body>
</html>

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <!-- 关闭动态方法调用 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <!-- 开启开发模式 -->
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="struts-default">

        <action name="user_*" class="userAction" method="{1}">
            <!-- 列表显示 -->
            <result>/WEB-INF/pages/userList.jsp</result>
            <!-- 新增/编辑页面显示 -->
            <result name="input">/WEB-INF/pages/userInput.jsp</result>
            <!-- 保存或者删除之后进行重定向 -->
            <result name="redirect" type="redirectAction">user</result>
        </action>

    </package>


</struts>

其他关联项目

源码地址

https://github.com/je-ge/framework

如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。您的支持将鼓励我继续创作!谢谢!
微信打赏
支付宝打赏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章