首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

MyBatis 三章 MyBatis Spring Struts2 整合应用

2012-06-26 
MyBatis 3章 MyBatis Spring Struts2 整合应用MyBatis 2章 MyBatis与Spring整合使用Spring Security实现权

MyBatis 3章 MyBatis Spring Struts2 整合应用


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> {//业务逻辑对象@Autowiredprivate 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"name="code"><?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" method="findFilm"><result name="success">/manager/films.jsp</result></action><!-- 添加影片 --><action name="insertFilm" method="insertFilm"><result name="success" type="redirectAction">findFilm</result></action><!-- 获取影片详情 --><action name="detailFilm" method="detailFilm"><result name="success">/manager/updateFilm.jsp</result></action><!-- 修改影片 --><action name="updateFilm" method="updateFilm"><result name="success" type="redirectAction">findFilm</result></action><!-- 删除影片 --><action name="deleteFilm" 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 楼 chitu11 2011-12-27   我是第11111位访客!

热点排行