设为首页 收藏本站
查看: 574|回复: 0

[经验分享] MyBatis 3章 MyBatis Spring Struts2 整合应用

[复制链接]

尚未签到

发表于 2016-11-26 01:30:14 | 显示全部楼层 |阅读模式
   
  MyBatis 2章 MyBatis与Spring整合
  使用Spring Security实现权限管理
  使用ajax gson增强用户体验
MyBatis 3章 MyBatis Spring Struts2 整合应用

   
   
  1、技术目标




  • 为项目添加Struts2框架
  • 整合Spring与strtus2
  • 为项目添加jsp页面,操作影片CRUD
   
  注意:关于strtus2框架其他方面的应用细节不在本文讨论范围
   
  2、使用准备
   
  2.1) 在项目(Web)中新增如下jar包,struts版本2.2.1.1(本文已提供下载):
  commons-fileupload-1.2.1.jar
  commons-io-1.3.2.jar
  commons-logging-1.1.1.jar
  freemarker-2.3.16.jar
  javassist-3.12.0.GA.jar
  ognl-3.0.jar
  struts2-core-2.2.1.1.jar
  struts2-spring-plugin-2.2.1.1.jar
  xwork-core-2.2.1.1.jar
  2.2)创建如下包,放置struts控制器(Action)代码:
  com.xxx.web.struts.action
  2.3)在src下创建Spring配置文件applicationContext-actions.xml ,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 这里配置Action -->
</beans>
  2.4)在src下创建struts2配置文件struts.xml ,内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="UTF-8" />
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.objectFactory.spring.autoWire" value="type" />
<constant name="struts.ui.theme" value="simple"></constant>
<package name="film" namespace="/film" extends="struts-default">
<!-- 设置Action -->
</package>
</struts>
  2.5)web.xml 中配置struts2

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
</context-param>
<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>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
  3、在com.xxx.web.struts.action包下创建类FilmAction,如下:

package com.xxx.web.struts.action;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.xxx.pojo.Film;
import com.xxx.service.FilmService;
@SuppressWarnings("serial")
public class FilmAction extends ActionSupport implements ModelDriven<Film> {
//业务逻辑对象
@Autowired
private FilmService filmService;
//封装查询结果
private List<Film> filmList;
//封装页面提交的表单数据
private Film film = new Film();
/**
* 获取所有的电影
* @return
* @throws Exception
*/
public String findFilm() throws Exception {
this.filmList = this.filmService.getAllFilm();
return SUCCESS;
}
/**
* 根据影片ID获取影片信息
* @return
* @throws Exception
*/
public String detailFilm() throws Exception {
int id = film.getId().intValue();
Film film = this.filmService.getFilmById(id);
this.film.setFname(film.getFname());
return SUCCESS;
}
/**
* 添加影片
* @return
* @throws Exception
*/
public String insertFilm() throws Exception {
this.filmService.insertFilm(film);
return SUCCESS;
}
/**
* 修改影片
* @return
* @throws Exception
*/
public String updateFilm() throws Exception {
this.filmService.updateFilm(film);
return SUCCESS;
}
/**
* 删除影片
* @return
* @throws Exception
*/
public String deleteFilm() throws Exception {
int id = film.getId().intValue();
this.filmService.deleteFilm(id);
return SUCCESS;
}
public Film getModel() {
return film;
}
public List<Film> getFilmList() {
return filmList;
}
public void setFilmList(List<Film> filmList) {
this.filmList = filmList;
}
}
  4、在applicationContext-actions.xml中配置FilmAction

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 创建FilmAction -->
<bean id="filmAction"
class="com.xxx.web.struts.action.FilmAction"
scope="prototype"/>
</beans>

  5、在struts.xml中配置Action
   

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="UTF-8" />
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.objectFactory.spring.autoWire" value="type" />
<constant name="struts.ui.theme" value="simple"></constant>
<package name="film" namespace="/film" extends="struts-default">
<!-- 获取所有影片 -->
<action name="findFilm" class="filmAction" method="findFilm">
<result name="success">/manager/films.jsp</result>
</action>
<!-- 添加影片 -->
<action name="insertFilm" class="filmAction" method="insertFilm">
<result name="success" type="redirectAction">findFilm</result>
</action>
<!-- 获取影片详情 -->
<action name="detailFilm" class="filmAction" method="detailFilm">
<result name="success">/manager/updateFilm.jsp</result>
</action>
<!-- 修改影片 -->
<action name="updateFilm" class="filmAction" method="updateFilm">
<result name="success" type="redirectAction">findFilm</result>
</action>
<!-- 删除影片 -->
<action name="deleteFilm" class="filmAction" method="deleteFilm">
<result name="success" type="redirectAction">findFilm</result>
</action>
</package>
</struts>
  6、在WebRoot(页面路径下)创建文件夹manager,在manager下创建3个jsp文件:


  • films.jsp (查询页面)
  • insertFilm.jsp (添加影片页面)
  • updateFilm.jsp (修改影片页面)
   
  6.1)films.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>信息操作</title>
</head>
<body>
<s:form action="/film/findFilm" method="post">
<s:submit value=" 获取所有影片信息 "></s:submit>
</s:form>
<a href="<%=basePath %>manager/insertFilm.jsp">添加影片信息</a><br />
<s:if test="filmList != null">
<table border="1" width="40%">
<tr>
<th>序号</th><th>影片名</th><th>操作</th>
</tr>
<%-- 遍历影片信息 --%>
<s:iterator var="film" value="filmList" status="st">
<tr>
<td><s:property value="#st.index+1" /></td>
<td><s:property value="fname" /></td>
<td>
<s:url id="detailUrl" value="/film/detailFilm">
<s:param name="id" value="%{id}"/>
</s:url>
<s:a href="%{detailUrl}">[修改]</s:a>&nbsp;
<s:url id="deleteUrl" value="/film/deleteFilm">
<s:param name="id" value="%{id}"/>
</s:url>
<s:a href="%{deleteUrl}">[删除]</s:a>
</td>
</tr>
</s:iterator>
</table>
</s:if>
</body>
</html>
  6.2)insertFilm.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>添加影片</title>
</head>
<body>
<s:form action="/film/insertFilm" method="post">
<s:textfield name="fname" value="" />
<s:submit value=" 添加 "></s:submit>
</s:form>
</body>
</html>
   
  6.3)updateFilm.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>修改影片</title>
</head>
<body>
<s:form action="/film/updateFilm" method="post">
<s:hidden name="id" />
<s:textfield name="fname" />
<s:submit value=" 修改 "></s:submit>
</s:form>
</body>
</html>
  
提示:本文示例项目已提供下载

  MyBatis 2章 MyBatis与Spring整合
  使用Spring Security实现权限管理
  使用ajax gson增强用户体验

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-305449-1-1.html 上篇帖子: mybatis自动生成xml 下篇帖子: mybatis学习教程-8-SelectBuilder
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表