SSH技术之Struts2.1.6实战课件精解_01
struts2.0升级到struts2.1.6遇到的问题汇总

struts2.0升级到struts2.1.6遇到的问题汇总最近项目从struts2.0升级struts2.1,改动还真不少,这里把升级过程中遇到的问题都记录下来:问题一web.xml的变化struts2.1中的写法为:<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsP repareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></fil ter-mapping>问题二零配置的变化在struts2.0中,一直使用的是codebehind插件,在struts2.1中已废弃codebehind,改用convention插件,这个插件使用比较简单,根据官方的文档很全,很容易就能上手,这里把我convention的参数写下来:struts.convention.result.path=/WEB-INF/jsp/.lowercase=false.separator=struts.convention.default.parent.package=defaultstruts.convention.package.locators.basePackage=com.mysite.web.action问题三tabbedPanel标签一直在使用struts2.0中的s:tabbedPanel标签,这个标签使用的是dojo脚本框架,在struts2.0中是自带的,struts2开发小组在struts2.1中把dojo做为插件的形式存在,对应的写法也发生了变化,下面是struts2.1中的写法:<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>……<sx:head/><sx:tabbedpanel id="tabbedpanel1" cssStyle="width: 100%; height: 100% " doLayout="true" ><sx:div id="column1" label="栏目一" loadingText="加载中……"href="url1.action" cssStyle="display:none"></sx:div><sx:div id="column2" label="栏目二" loadingText="加载中……"href="url2.action" cssStyle="display:none"></sx:div></sx:tabbedpanel>问题四乱码问题原来在struts2.0里面正常的内容,在struts2.1.6中会乱码,struts2.1.6居然还敢声称GA 版,这种bug都有,汗一个,从官方找到的解决办法,修改strut2.1.6源文件org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,把doFilter 方法中由:prepare.createActionContext(request, response);prepare.assignDispatcherToThread();prepare.setEncodingAndLocale(request, response);改为:prepare.setEncodingAndLocale(request, response);prepare.createActionContext(request, response);prepare.assignDispatcherToThread();不想修改源文件的话,把StrutsPrepareAndExecuteFilter类的代码copy一份,然后web.xml配置成你copy的这份也可以问题五could not be resolved as acollection/array/map/enumeration/iterator type在s:select,s:s:checkboxlist标签中使用集合,如果集合为空时,会报这个错误,在struts2.0中不会报这个错误问题六float类型变量值为0.0时,设置set方法时出错目前没有发现好的解决方法,替待解决方法是去掉set方法,提交页面需要设置值时,通过request.getAttribute方式获取还有一些其他问题,还在整理中……。
SSH2详细(框架搭建)

applicationContext.xml常用配置:
sessionFactory配置:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactor yBean">
<filter-name>struts</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
第五页,编辑于星期三:六点 八分。
struts2相关配置
struts.xml文件配置 在项目src目录下添加struts.xml配置文件。其基本配置如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
一个属性被映射为主键 . 置于 getXxxx() 前 .
第十七页,编辑于星期三:六点 八分。
JPA相关注解
@GeneratedValue(strategy=GenerationType,generator="")
可选
strategy: 表示主键生成策略 , 有 AUTO,INDENTITY,SEQUENCE 和 TABLE 4 种 , 分别表示让 ORM 框架自动选择 ,
最新struts学习课件PPT课件

一、Struts应用简介
(6)、Action的execute()方法返回一个 ActionForward对象,ActionServlet再把客 户请求转发给ActionForward对象指向的jsp 组件。 (7)、ActionForward对象指向的jsp组件生 成动态网页,返回给客户。
二、struts配置
二、struts配置
2、ActionServlet的初始化参数 <servlet> <servlet-name>action</servlet-name> <servlet-class>….</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> </servlet>
SSH框架教程

SSH框架的学习一,Struts 21 为什么要学习Struts框架?1>Struts框架的好处:简化开发工作量,提高开发效率;采用了优秀的MVC思想2>如何学习:先掌握框架的使用,在了解内涵2 MVC模式在javaWeb中的应用1>MVC思想是根据组件职责不同,将系统分为三部分组成--M(Model) 负责业务处理--V(View) 负责与用户交互--C(Controller) 负责协调试图部分和模型部分协同工作2> 为什么使用MVC:易于扩展和升级3 Struts框架的处理流程浏览器发出struts请求—>请求进入struts控制器—>struts控制器解析XML配置文件—>控制器根据不同请求,调用不同的Action—>Action 调用DAO处理请求返回结果—>控制器根据结果调用试图组件,响应给用户4 Struts 历史Struts框架分为Struts1和Struts2 两者没有必然联系,Struts2 是以WebWork 框架核心(Xwork)为基础构建起来的5 Struts 基本使用1>引入核心开发包五个:commons-logging-1.0.4.jar ( 主要用于日志处理)struts2-spring-plugin-2.0.14.jar ( struts2整合spring需要的包)2>在web.xml 中配置struts控制器org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExcuteFilter3>根据要求编写Action 和JSP Action要继承ActionSupport4>在struts.xml定义Action和请求对应关系6 struts.xml 基本配置可以放在src下面1><struts> 根元素里面包含多个<package>元素2><package> 主要是为了将Action分组定义name用于指定包名;extends一般指定struts-default(在struts-default.xml中定义),里面包括struts2运行所需的必要组件3><action name=”” class=”” method=””>4><result> 一个<action>可以包括多个<result> 主要用于试图响应5>下面一个例子:7 为列表添加分页功能例如每页2个page =1;pageSize=2;int begin=(page-1)*pageSize+1;int end=page*pageSize;eg: select * from ( select rownum rn , c.* form COST c ) where rn between 1 and 6;8 利用Struts2标签+OGNL技术1>OGNL: (Object-Graph Navigation Language)对象图导航语言,主要用于访问对象的数据和方法。
SSH技术之Struts2.1.6实战课件精解_03

SHH实战系列教程-----Struts 2.1实战教程-------课件编写人:徐桥第二天 (3)S TRUTS2框架中的拦截器 (4)使用Struts2框架中的拦截器 (4)Timer计时拦截器 (4)代码案例步骤如下: (4)第一步 (4)第二步 (4)第三步 (5)第四步 (5)第五步 (7)总结: (7)Token防止重复提交拦截器 (7)代码案例步骤如下: (8)第一步 (8)第二步 (9)第三步 (9)总结 (12)Struts 2拦截器原理 (12)理解拦截器 (12)什么是拦截器: (12)拦截器的实现原理: (13)拦截器的配置 (14)自定义拦截器 (16)自定义权限拦截器 (17)案例步骤: (17)第一步 (17)第二步 (17)第三步 (18)第四步 (19)S TRUTS2输入校验 (21)对Action中所有方法进行输入校验 (21)采用手工编写代码实现对action中所有方法输入校验 (21)项目代码步骤如下 (22)第一步 (22)第二步 (22)第三步 (22)第四步 (24)对action指定方法进行校验 (25)采用手工编写代码实现对action指定方法输入校验 (25)项目代码步骤如下 (26)第一步 (26)第二步 (26)第三步 (26)第四步 (28)输入校验的流程 (29)基于XML配置方式实现对action的所有方法进行校验 (29)项目代码步骤如下: (30)第一步: (30)第二步: (30)第三步: (31)第四步: (32)第五步:............................................................................................................... 错误!未定义书签。
基于XML配置方式实现对指定action方法校验 . (34)项目代码步骤如下: (34)第一步 (34)第二步 (35)第三步 (35)第四步 (37)第五步 .............................................................................................................. 错误!未定义书签。
SSH教材2版配套PPT-第6章Struts2深入b[53页]
![SSH教材2版配套PPT-第6章Struts2深入b[53页]](https://img.taocdn.com/s3/m/6f70df49a26925c52dc5bf06.png)
</action>
</package>
配置多个拦截器
<package name="packName" extends="struts-default" namespace="/manage">
<interceptors>
<!-- 定义拦截器 -->
<interceptor name="interceptorName" clas;
《JavaEE SSH框架应用开发 第2版》
第6章 Struts2深入
本章主要内容
•学完本章后,能够掌握以下内容: •Struts2拦截器 •自定义拦截器 •文件上传和下载 •OGNL表达式
Struts 2架构剖析
Struts执行流程简图
HttpServletRequest
HttpServletResponse
拦截器工作原理
• 拦截器的执行过程是一个递归的过程
三阶段执行周期: 1、做一些Action执行前的预处理 2、将控制交给后续拦截器或返回结果字 符串 3、做一些Action执行后的处理
拦截器简单应用2-1
继承AbstractInterceptor类
• 拦截器示例 public class MyTimerInterceptor extends AbstractInterceptor{ public String intercept(ActionInvocation invocation) throws Exception { //预处理工作 重写intercept() long startTime = System.currentTimeMillis();
Struts2_SSH讲义

/hulei0217 QQ 347993010 Email hulei0217@SSH培训讲义Struts2Struts2(上)一、经典的MVC模式二、Struts1.x对MVC的实现三、Struts1.x的主要组件和作用四、Struts1.x 开发实例-登录程序见案例。
五、Struts2(WebWork)的MVCStruts2的MVC架构六、Struts2的主要组件七、Struts2的实例-登录在MyEclipse环境中建立一个新的web工程,名称“Struts2Login”,存放路径“f:\Struts2Login”。
在Struts2.0.11版本中找到war包struts2-blank-2.0.11.war,解开该war包,在WEB-INF/lib 目录下复制出所有的jar包,这些jar包就是一个Struts2程序所需要的基础jar包,把它们复制到新建的web工程的WEB-INF/lib目录中。
在src目录下建立一个类,包名mypack,类名UserAction,其代码如下:package mypack;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {private String username;private String userpass;public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getUserpass() {return userpass;}public void setUserpass(String userpass) {erpass = userpass;}@Overridepublic String execute() throws Exception {if ("Mike".equals(username) && "123".equals(userpass)|| "张三".equals(username) && "abc".equals(userpass))return "success";elsereturn "error";}}在src目录下建立Struts2的配置文件struts.xml,内容如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><!-- 定义包管理配置的action 继承struts-default.xml中的配置 --><package name="actions" extends="struts-default"><!-- 定义Action(login.action) --><action name="login" class="erAction"><!-- 定义转发路径对应的字符串名 --><result name="success">/Success.jsp</result><result name="error">/Error.jsp</result></action></package></struts>修改web.xml,在其中加入一个过滤器,过滤/*路径。
01 struts2入门课件

Struts2入门
—高级软件人才实作培训专家 ! 搭建Struts2开发环境的步骤
搭建Struts2环境时,我们一般需要做以下几个步骤 的工作: 1.创建javaweb工程 2.找到开发Struts2应用需要使用到的jar文件 3.创建jsp文件 4.创建action文件 5.编写Struts2的配置文件 6.在web.xml中加入Struts2 MVC框架启动配置
利用Class.forName()方法取得类的完整路 径,然后在利用newInstance()方法创建一 个实例
北京传智播客教育
—高级软件人才实作培训专家 ! 模拟Struts2工作原理
4.客户端请求提交给Servlet或过滤器来处理
private Map<String,String> map=new HashMap(); public void init(FilterConfig filter) throws ServletException { map.put("/primer/userAction.action","erAction"); map.put("/helloWorld/helloAction.action","cn.itcast.action.HelloAction"); }try { Action userAction =(Action)Class.forName(map.get(path)).newInstance(); userAction.execute(); req.getRequestDispatcher("/success.jsp").forward(req, res); } catch (InstantiationException e) { 用Map保存客户端请求链接和要访问 e.printStackTrace(); } catch (IllegalAccessException e) { action的对应值 e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } 北京传智播客教育
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SHH实战系列教程-----Struts 2.1实战教程-------课件编写人:徐桥第一天 (2)S TRUTS 2的介绍 (2)Struts 2.x简介: (2)与Struts 1.x 相比Struts 2.x框架的优势 (3)Struts-2.1.8.1-all目录下文件简介 (3)S TRUTS 2开发环境的搭建 (4)Struts 2.x使用到的jar文件 (4)Struts2的启动配置(在web.xml中配置) (5)Struts2的配置文件模版 (6)Struts 2.1.8版本开发环境要求 (5)第一个S TRUTS2应用 (6)第一步:新建一个J2EE5.0的web project工程 (6)第二步:在src目录下创建一个struts.xml文件 (7)第三步:新建一个java类 (9)第四步:导入jar包 (9)第五步:配置 web.xml文件(struts2 启动配置) (9)第六步:建立显示页面hyFrist.jsp (10)第七步:在IE浏览上测试程序结果: (10)解决在M Y E CLIPSE下S TRUTS2配置文件无提示问题 (11)A CTION名称的搜索顺序 (14)给A CTION配置的各项默认值 (15)A CTION中RESULT的各种转发类型 (19)dispatcher(重定向跳转,默认值) (20)Result(重定向) (20)redirectAction (21)plaintext(显示原始文件内容) (21)第一天内容介绍:●Struts 2.x简介●Struts 2开发环境的搭建●第一个struts2应用开发●解决struts2配置文件无提示问题●Action名称的搜索顺序●Action配置的各项默认值.●result配置的各种视图转发类型.●为Action属性注入值●指定Struts2处理的请求后缀●Struts2的处理流程与Action的管理方式期望的目标●了解Struts 2的优势●熟练配置Struts 2环境并且开发出Struts 2框架的第一环境●了解Action在Struts 2作用及原理●理解Struts 2的类型转换原理●了解Action属性的注入值●理解并且渗透Struts2的处理流程与Action的管理方式Struts 2的介绍Struts 2.x简介:Struts 2.x仍然是一个MVC框架。
一般来说,某种软件的第二个版本都是起源第一个版本,但实际上,Struts 2.x是个特例,它并非起源于Struts 1.x,而是起源于WebWork框架 ------ 另一MVC的框架。
因此Struts 2.x与Struts 1.X是没有直接关系的。
WebWork是Apache的另一个MVC框架,发布于2002年3月。
WebWork 项目在起时曾参考过Struts 1.x,因为Struts 1.x当时已经是个十分流行的MVC框架(Struts 1.x起源最早,应用最广的基于MVC框架的Java Web 技术)。
WebWork 可以说对Struts 1.x进行了换血式的大改装,从一个新的视觉实现MVC。
抛弃了request、response等基于servlet 的API。
从设计思想、易用性上看,作为后来者的WebWork则应用时更胜一筹的,但是在使用上却一直不如Struts 1.x广泛。
2005年12月,WebWork项目与Struts 项目宣布合并,并且推出Struts 2,其内核是WebWork2。
Struts 2有许多新特性,例如支持主题、集成DOJO框架、内置AJAX等。
Struts2的官方网址为/2.x。
但是,Struts 2是对Struts 1.x 的一个补充,而不是替代品,它们的思想是完全不同的。
目前也有相当多Struts 1.x系统正运行在网络上。
Struts 官方同时提供Struts 1.x与Struts 2.x的下载。
Struts2 是一个基于Action的MVC框架Struts 2.x框架的优势1)在软件设计上Struts 2.x没有像 Servlet API,Struts 2的应用可以不依赖于Servlet API。
Struts 2.x的这种设计属于无侵略式设计(也Struts 2.x 是一轻量级框架,可以任凭你自己的技术在Struts 2.x框架上扩展)。
2)Struts 2.x提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能。
3)Struts 2.x提供了类型转换器。
4)Struts 2.x提供支持多种表现层技术,如:JSP、freeMarker、Velocity 等5)Struts 2.x的输入效验可以对指定方法进行效验6)提供了全局范围、包范围和Action范围的国际化资源文件管理实现Struts-2.1.8.1-all目录下文件简介SRC目录:源文件包LIB目录:Struts2.1.6技术的相关jar包DOCS目录:Struts2.1.6帮助文档APPS目录:Struts2.1.6技术自带的相关例题Struts 2开发环境的搭建搭建Struts 2.x环境时,我们一般需要做以下几个步骤的工作:1)下载或者需找其他办法找到Struts 2.x使用到的jar文件2)编写Struts 2.x的配置文件3)在web.xml中加入Struts 2.x MVC框架启动配置4) Struts 2.1.8开发环境的配置的要求Struts 2.x使用到的jar文件struts2.1.6 中的jar包的下载地址:/download.cgi#struts2014 到该网址下下载struts-2.x.x-all.zip。
下载如图所示:下载后解压该文件,开发Struts 2.x应用需要依赖的jar文件在解压目录的lib文件下。
不同的应用需要的JAR 包是不同的。
下面我对Struts 2.x中需注:我们所讲的Struts版本为2.1.8,本课程的开发环境为:jdk1.6版本以上,tomcat 6版本以上,MyEclipse 8版本以上,所建工程遵循J2EE5.0规范,代码测试系统为win 7操作系统。
Struts 2.1.8版本开发环境要求本课程要求开发环境如下:IDE:MyEclipse 8JDK:1.6数据库:Oracle 10g服务器环境:Tomcat 6.0实战编写环境:win 7/window 2000/window xpStruts2的启动配置(在web.xml中配置)在struts1.x中, struts框架是通过Servlet启动的。
在struts2中,struts 框架是通过Filter启动的。
他在web.xml中的配置如下:<filter><filter-name>struts2</filter-name><!--<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>--><!-- 从Struts 2.1.3以后,注意:org.apache.struts2.dispatcher.FilterDispatcher这种配置已过时 --><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>在FilterDispatcher的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作。
注意:struts2读取到struts.xml的内容后,会将内容封装进javabean对象并存放在内存中,对于用户每次请求的处理将使用内存中的数据,而不是每次请求都读取struts.xml文件Struts2的配置文件模版Struts2默认的配置文件为struts.xml ,FilterDispatcher过滤器在初始化时将会在WEB-INF/classes下寻找该文件,该文件的配置模版如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "/dtds/struts-2.0.dtd"><struts></struts>第一个Struts2应用第一步:新建一个J2EE5.0的web project工程在MyEclipse8 工具下新建一个J2EE5.0的web project工程,其工程名为:hy0506_Struts2.1_Demo1第二步:在src目录下创建一个struts.xml文件Struts2默认的配置文件为struts.xml ,我们在MyEclipse 8工具的hy0506_Struts2.1_Demo1项目中的SRC目录下新建一个xml文件命名为:struts.xml,其该文件的配置如下:(注:FilterDispatcher过滤器在初始化时将会在WEB-INF/classes下寻找该文件)<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><packagename="hy"namespace="/hy"extends="struts-default"><actionname="hyFrist"class="com.hy.action.FristAction"><result name="success">/hyFrist.jsp</result></action></package></struts>注:其中:<package name="hy"namespace="/hy"extends="struts-default">。