MyBatis 3章 MyBatis Spring Struts2 整合应用
来源:互联网 发布:智能电网调度算法 编辑:程序博客网 时间:2024/06/11 05:26
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"?>
- <beansxmlns="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>
- <constantname="struts.enable.DynamicMethodInvocation"value="true"/>
- <constantname="struts.devMode"value="true"/>
- <constantname="struts.i18n.encoding"value="UTF-8"/>
- <constantname="struts.objectFactory"value="spring"/>
- <constantname="struts.objectFactory.spring.autoWire"value="type"/>
- <constantname="struts.ui.theme"value="simple"></constant>
- <packagename="film"namespace="/film"extends="struts-default">
- <!-- 设置Action -->
- </package>
- </struts>
2.5)web.xml 中配置struts2
- <?xml version="1.0"encoding="UTF-8"?>
- <web-appversion="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 FilmActionextends 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>
- <constantname="struts.enable.DynamicMethodInvocation"value="true"/>
- <constantname="struts.devMode"value="true"/>
- <constantname="struts.i18n.encoding"value="UTF-8"/>
- <constantname="struts.objectFactory"value="spring"/>
- <constantname="struts.objectFactory.spring.autoWire"value="type"/>
- <constantname="struts.ui.theme"value="simple"></constant>
- <packagename="film"namespace="/film"extends="struts-default">
- <!-- 获取所有影片 -->
- <actionname="findFilm"class="filmAction"method="findFilm">
- <resultname="success">/manager/films.jsp</result>
- </action>
- <!-- 添加影片 -->
- <actionname="insertFilm"class="filmAction"method="insertFilm">
- <resultname="success"type="redirectAction">findFilm</result>
- </action>
- <!-- 获取影片详情 -->
- <actionname="detailFilm"class="filmAction"method="detailFilm">
- <resultname="success">/manager/updateFilm.jsp</result>
- </action>
- <!-- 修改影片 -->
- <actionname="updateFilm"class="filmAction"method="updateFilm">
- <resultname="success"type="redirectAction">findFilm</result>
- </action>
- <!-- 删除影片 -->
- <actionname="deleteFilm"class="filmAction"method="deleteFilm">
- <resultname="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:formaction="/film/findFilm"method="post">
- <s:submitvalue=" 获取所有影片信息 "></s:submit>
- </s:form>
- <a href="<%=basePath %>manager/insertFilm.jsp">添加影片信息</a><br/>
- <s:if test="filmList != null">
- <tableborder="1"width="40%">
- <tr>
- <th>序号</th><th>影片名</th><th>操作</th>
- </tr>
- <%-- 遍历影片信息 --%>
- <s:iteratorvar="film"value="filmList"status="st">
- <tr>
- <td><s:propertyvalue="#st.index+1"/></td>
- <td><s:propertyvalue="fname"/></td>
- <td>
- <s:urlid="detailUrl"value="/film/detailFilm">
- <s:paramname="id"value="%{id}"/>
- </s:url>
- <s:ahref="%{detailUrl}">[修改]</s:a>
- <s:urlid="deleteUrl"value="/film/deleteFilm">
- <s:paramname="id"value="%{id}"/>
- </s:url>
- <s:ahref="%{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:formaction="/film/insertFilm"method="post">
- <s:textfieldname="fname"value=""/>
- <s:submitvalue=" 添加 "></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:formaction="/film/updateFilm"method="post">
- <s:hiddenname="id"/>
- <s:textfieldname="fname"/>
- <s:submitvalue=" 修改 "></s:submit>
- </s:form>
- </body>
- </html>
- MyBatis 3章 MyBatis Spring Struts2 整合应用
- MyBatis 3章 MyBatis Spring Struts2 整合应用
- spring + struts2 + mybatis整合
- spring+struts2+mybatis整合
- struts2 spring mybatis整合
- struts2+spring+mybatis整合
- Spring+Struts2+Mybatis整合
- spring+struts2+mybatis整合
- spring+mybatis+struts2整合
- Struts2、Mybatis、Spring整合
- mybatis+spring+struts2框架整合
- mybatis+spring+struts2框架整合
- Struts2+mybatis+Spring的整合
- struts2+mybatis+spring框架整合
- mybatis+spring+struts2框架整合
- struts2 + spring + mybatis 整合配置文件
- mybatis+spring+struts2框架整合
- Struts2+spring+Mybatis框架整合
- JavaScript--事件对象
- 使用ajax gson增强用户体验
- 第一个项目(八)碰撞检测
- MyBatis 2章 MyBatis与Spring整合
- set的相关操作
- MyBatis 3章 MyBatis Spring Struts2 整合应用
- bitset相关操作
- 交换机灯全解
- 电脑运行命令
- iPhone/Mac Objective-C内存管理教程和原理剖析
- 电脑故障报警
- BIOS设置中英文对照表
- 电脑如何重装系统
- 注册栏字体小