传智2.struts-.常量、路径

合集下载

Struts2学习之二--Struts2标签介绍

Struts2学习之二--Struts2标签介绍

Struts2学习之二--Struts2标签介绍热12已有 14625 次阅读 2009-07-12 18:53[顶]3G移动--Android开发工程师全能班(转) Struts2学习之二--Struts2标签介绍在上一篇文章《为Struts 2.0做好准备》中,我过于详细地介绍了Struts 2.0开发环境和运行环境的配置,所以,本文很少涉及的以上两方面的细节。

如果,您看完《为Struts 2.0做好准备》后,还有什么不明白,或者没法运行文中例子,请联系我。

我的E-MAIL:Max.M.Yuan@。

在介绍常用标志前,我想先从总体上,对Struts 1.x与Struts 2.0的标志库(Tag Library)作比较。

分类将标志库按功能分成HTML、Tiles、Logic和Bean等几部分严格上来说,没有分类,所有标志都在URI为“/struts-tags”命名空间下,不过,我们可以从功能上将其分为两大类:非UI标志和UI标志表达式语言(expression languages)不支持嵌入语言(EL)OGNL、JSTL、Groovy和Velcity以上表格,纯属个人总结,如有所不足或错误,请不吝指正好了,我要开始介绍“常用”(这里所谓的“常用”,是指在已往工作中使用Struts里经常用到的)的标志了。

1.非UI标志o if、elseif和else描述:执行基本的条件流转。

参数:名称必需默认类型描述备注test 是Boolean 决定标志里内容是否显示的表达式else标志没有这个参数id 否Object/String 用来标识元素的id。

在UI和表单中为HTML的id属性例子:<%@ page contentType="text/html; charset=UTF-8" %><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Condition Flow</title></head><body><h3>Condition Flow</h3><!--这里有点小技巧:本来可以用#[0]来获得,请求中name的值。

struts2学习笔记

struts2学习笔记

Struts2 框架第一天今天重点内容:1、什么是Struts2框架?框架特性分析2、struts2 快速入门(分析struts2 运行原理)3、struts2 常用配置4、如何访问Struts2 Action (Servlet)5、Struts2 结果集使用(响应跳转/ajax)1.Struts2 框架概述1.1.什么是struts2Struts2 框架问题:什么是框架?为什么要学习框架?框架是一些已经写好代码,通常和具体业务无关(可以看成:软件的半成品)学习框架,提高开发效率,简化开发(应用框架,实现代码代码开发实现开发标准化)javaEE三层结构在web阶段DAO模式符合JA V AEE三层结构的三层结构出自JavaEE规范(体系结构图)表现层⏹业务层⏹持久层/集成层Struts2 是一个表现层框架(简化表现层代码开发)分层开发:代码结构更加清晰,为了更好维护和扩展1.2.struts2 由来由两个框架优点合并后发展而来(struts1 + webwork)历史由来:Java兴起98年(最早进行java开发分方向j2se 、j2ee、j2me )J2EE 企业级应用软件开发2000 年左右出现struts1 (几乎所有开发人员都在用)随着互联网的发展struts1 设计慢慢开始存有缺陷和不足Webwork框架的出现该框架的设计思想比struts1 先进的多,例如:引入拦截器机制、ognl 表达式语言Apache 推出struts2 框架,特点: 开发流程类似struts1 ,内部结构类似webwork (struts2 和webwork 源自xwork 命令模式框架)1.3.struts2 开发包结构使用框架,导入jar包课程使用struts-2.3.15.3-all.zip 版本学习apps 使用demo (方便后期快速导入jar包和配置文件)开发中war重命名成zip包解压找到里面的13个核心jar包doc 文档(学习struts2的官方官方规范文档)lib 开发struts2 需要的所有jar包src 源代码开发struts2 没必要导入lib下128个jar包(去struts2_blank.war下方找struts2 最基本jar)将war包改为zip 扩展名,解压缩回顾jar记忆: 核心struts2-core-3.15.3.jar+ xwork-core+ognl (3) 上传(2jar) 日志: 2 jar 字符串lang 1 asm.* 3 jar 处理字节码信息javassist.jar 1 代理相关freemarker 1 jar 图形模板引擎开发strutrs2 基包导入web 工程!1.4.struts2入门理论JavaEE设计模式:前端控制器模式过滤器模式访问如图:前段控制器作用: 请求分发!通过struts.xml配置给指定Actionstruts前端控制器:开发中将所有的重复的代码提前到前端控制器去完成,在Action 中只要写不重复业务处理代码!编写快速入门开发流程说明2.Struts2快速入门案例第一步:在myeclipse 新建web project选择javaee版本,课程优先5.0 ------ myeclipse2014 servlet 版本2.5 采用JDK6 编译器第二步:导入struts2 开发jar包apps/struts2_blank.war/WEB-INF/lib/ 13个jar包asm-* 字节码操作类库(.class文件)commons-fileupload 文件上传依赖commons-iocommons-lang3 对字符串、数据操作公共方法commons-logging Java通用日志接口,依赖日志实现log4j freemarker 模板引擎(struts2标签库,依赖freemarker )javassist 生成代理ognl 表达式语言(比EL强大很多倍)struts2-core 核心jar包xwork-core struts2和webwork依赖命令模式框架2: 配置web.xml3:配置struts.xml 推荐找到2.3.15.jar --> apps 目录:struts-blank自带struts.xml 文件导入!编写HelloAction (类似之前写的Servlet )5 struts.xml 注册action 和请求资源虚拟路径映射!访问该action http://localhost/strut2_day01/hellAction运行流程分析图解:3.分析struts2运行原理Struts2 核心控制器Struts Prepare And Execute Filter (准备和执行)-------- 前端控制器模式查看系统执行默认一组拦截器打开文档: struts2核心jar 内struts-default.xml系统执行前端控制器根据struts-default.xml 配置文件配置默认拦截器栈执行一组拦截器然后再执行目标Action -->execute 方法!请求---执行一堆拦截器组件(业务功能)---- 具体ActionStruts2 可以复用代码功能,基于Interceptor 实现的问题:执行了哪些拦截器?小结原理:1: 通过web.xml 配置前端控制器2: 前端控制器执行一组拦截器通过struts.xml 访问具体action 执行业务方法3: action execute 方法返回字符串结果页面跳转!拦截器组件执行顺序:参考struts-core.jar 提供struts-default.xml 配置文件默认情况下,访问每个Action ,defaultStack 都会执行!每个拦截器都会被调用,一些重复功能,由拦截器去实现的!!!问题: 是否是struts2 开发每一次请求都会执行拦截器?拦截器并不是每次都执行!! 看访问资源的!1: 访问资源目标是一个Action 组件必然会调用拦截器然后执行action ' 2: 如果访问是jsp/html 静态资源前端控制器不会调用默认拦截器栈的!拦截器只针对Action 有效!3.1.配置struts.xml DTD提示struts.xml 引入DTD约束(限制如何配置这个文件)⏹如果电脑可以联网,自动从网上下载DTD,缓存提供提示⏹如果电脑没有联网,在本地配置DTD文件位置,提供本地提示struts-2.3.15.3\src\core\src\main\resources文件struts.xml关闭重新打开有自动提示标签!4.struts2 常用配置文件了解前端控制器在容器启动的时候执行哪些配置文件的加载! 配置文件源码分析流程: 分析StrutsPreparedAndExecuteFilter先加载*.properties 然后再加载*.xml 配置文件properties:配置框架启动一些基本配置信息: 比如: 请求虚拟路径配置乱码配置..... default.properties : 框架加载的默认配置信息其次加载xml 文件: 三个struts-default.xml : 核心包下struts-plugin.xml : struts 和第三方插件整合的时候加载插件配置文件举例: struts-json-plugin.jarstruts2 + json 整合整合第三方插件配置文件.struts.xml: 用户自定义配置文件: 可以重写上述框架配置文件信息以及用户开发相关信息: action exception result .... 小节: 容器一旦启动: 加载xxx.properties 又加载三个xml ...继续加载src 必须名称叫做struts.properties配置文件修改: default.properties 信息4.1.框架配置文件配置文件加载顺序通过源码跟踪执行主要的配置文件哪些?init 容器启动的时候加载配置文件!!跟踪dispatcher.init();配置文件的加载顺序!! 核心defalust.properties [1] struts-default.xml struts-plugins.xml struts.xml [2] struts.properies[3](修改框架默认配置信息)⏹Struts2 常量配置文件⏹default.properties (框架执行加载配置信息) struts-core jar包org.apache.struts2 包下⏹项目默认配置信息!!!⏹Struts2 框架内置核心配置文件struts-core jar包struts-default.xml 拦截器结果集⏹(Bean元素、结果集类型、拦截器… )在struts2框架体系中,package 实现一些配置复用,编写子包继承struts-default⏹Struts2 框架插件配置文件位于每个插件包根目录struts-plugin.xml扩展一些插件配置用户自定义配置因为开发中往往需要更改框架默认配置信息参数⏹在用户项目src目录struts.xml ,推荐使用!进行用户开发相关配置⏹⏹用户也可以添加properties 修改框架默认加载信息!!⏹在用户项目src目录struts.properties ,文件名不能修改!⏹用户自己常量配置文件default.properties 不推荐!⏹在web.xml 配置struts2 常量(更不推荐)规则:后加载配置文件,配置内容,可以覆盖之前加载配置内容!!!开发人员主要采用struts.xml 或者struts.propertiesstruts.properties (只能配置常量)struts.xml 修改struts.xml添加标签<constant name="" value=""></constant>测试通过struts.xml 或者自定义struts.properties 修改框架加载的默认配置信息!! 修改访问路径扩展名struts.action.extension=action,, 改成自己的扩展名4.2.小节配置文件1: default.properties : 框架加载默认配置信息如果用户需要修改推荐: struts.xml 引入<constant 标签name="key"> 2: TranditionXml :struts-default.xml : 定义struts2 大量结果集以及拦截器配置和工厂Bean : 使用默认拦截器和结果集跳转程序员在struts.xml 使用<package extends="struts-default"> 使用struts2 提供结果集和拦截器3: struts-plugin.xml : 整合第三方插件: 如果需要使用第三方插件: 程序员在struts.xml <package extends="xxx插件包名称">4: struts.xml : 定义用户自己的配置信息:4.3.详细分析Action相关映射配置Struts2 提供前端控制器,采用请求分发思想,将不同url请求,分配给不同Action进行处理,需要在struts.xml 配置请求路径和Action 映射关系!问题:struts2 package作用Package可以用来管理Action,实现包内配置复用(通过包继承实现)struts-default.xml 定义一个package包内定义大量结果集类型和拦截器用户开发package 通常继承struts-default 包name属性:包名称,在struts容器具有唯一性(在开发中可以用模块名称作为包名)namespace 属性:名称空间区分重复性举例:如果两个包存在同名Action ,需要名称空间区分action访问路径访问上面Action 应用名称空间http://localhost/struts2_day01/demo2/hello.action4.4.struts2 常量配置在struts2 六种配置文件中,都可以配置struts2 常量,后加载配置文件常量可以对先加载配置文件进行覆盖!常用常量分析1、struts.i18n.encoding=UTF-8相当于request.setCharacterEncoding(“utf-8”); 解决post 请求乱码问题Struts2开发时,无需关注post 乱码问题2、struts.action.extension=action,,Action请求映射路径默认扩展名问题:http://localhost:8080/struts2_day1/hello 也可以访问HelloAction如果请求路径必须以.action结尾3、struts.configuration.xml.reload=true修改struts.xml 配置后,无需重启服务器当设置devMode =true 激活xml自动重新加载4、struts.ui.theme=xhtml设置页面标签显示样式// struts-tag 标签库5、struts.objectFactory=struts负责创建Action对象类6、struts.enable.DynamicMethodInvocation=true // 默认是false访问Action 支持动态方法调用访问action组件可以采用动态调用的方式进行.配置文件分离,在大型项目中,因为如果使用一个配置文件,需要配置很多Action,不方便维护,struts.xml 提供<include> 标签,将配置分离出去5.访问Action5.1.Action 三种书写格式第一种写法,编写自定义Action类,实现Action接口Action 接口提供execute 处理业务逻辑方法1: 实现Action 接口!!struts.xml配置访问: Action http://localhost/struts2_day01/helloAction第二种写法:编写自定义Action 继承ActionSupport 类(间接实现Action接口)ActionSupport 类的特点:源码:添加了更多的接口实现ActionSupport 提供更多功能(数据校验、国际化…)编码:struts.xml 配置注册!注意DTD 约束规范逗号表示标签书写顺序!访问action http://localhost/struts2_day01/helloAction2第三种特殊写法:POJO plain old java object写法domain--->充当Action 场景: 请求封装对象本身就是javaBeanUser --->== Action提供一个execute 方法struts.xml 配置http://localhost:8099/struts2_day01/helloUserPOJO(Plain Old Java Object)简单的Java对象,实际就是普通JavaBeans 小结:5.2.关于Action的业务方法说明5.2.1.通配符的使用1: 访问指定业务方法<action 标签添加method ="对应Action中指定方法名称">配置struts.xml 注意每一个method属性值匹配Action具体的方法名称问题: 如果目标Action 方法业务过多struts.xml 引入多个action 标签重复性很高!如何简化struts.xml 配置??解决方案: 2种简化: 1: 通配符(重点) 2: 动态方法调用(掌握)5.2.2.通过设置method属性,执行Action不同业务方法设置method属性,指定调用Action 组件的对应方法启示:可以在一个Action中编写多个业务方法,在访问时,通过method 区别5.2.3.使用通配符简化路径和Action业务方法映射配置案例1: index.jsp 搭建请求访问Action 编写注意: 星的和占位符{1} {2} struts.xml{1} 对应name中第一个* 匹配的内容--->方法名称演示 2 颗星使用index.jsp 引入多个模块struts.xml 配置可以简化多个模块配置引入2颗星第一颗表示类名第二颗表示方法名称修改请求地址index.jsp测试!通配符完成!5.2.4.动态方法调用动态方法调用,效果类似通配符玩法,无需配置method 属性举例:在新版本struts2 中动态方法调用,默认是关闭的演示动态方法调用:编写:index.jsp注意请求资源地址的路径写法: ! 编写ProductAction配置struts.xml 完成配置最后开启动态方法调用配置查看默认的default.properties默认是关闭的在自己的strut.xml 开启测试完成!5.3.Action访问Servlet 相关API5.3.1.Action与ServletAPI 解耦合方式调用Servlet API doGet(HttpServletRequest, HttpServletReponse)--- Servlet 依赖request和response (代码中直接依赖---- 耦合)Struts2 设计思想与Servlet API 解耦合,编写Action 中不再直接依赖Servlet 任何APIStruts2 提供ActionContext 类(Action 上下文)上下文:与容器相关,获取容器相关对象、信息---- 工具类提供大量间接操作Servlet API (request、response、session、application)方法5.3.2.Action 直接操作Servlet API方式一:接口注入Servlet APIindex.jsp编写入口2:struts.xml 引入其他配置文件信息主文件: struts.xml模块化文件: myservlet.xml注意子文件不能和其他文件包名冲突3: 采用指定接口注入获取对应servlet api 对象。

第2章Struts2核心组件详解

第2章Struts2核心组件详解
18
包含配置在struts.xml中的配置格式如下: <include file="文件名"/> flie:指定文件名,必选项。 包含配置避免开发复杂项目时配置struts.xml过于庞大,导致读取配置文件速度较慢,同时有 利于模块化开发。
19
【例2-2】实例struts2-portlet.war的配置文件 (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> <include file="struts-view.xml"/> <include file="struts-edit.xml"/> <include file="struts-help.xml"/> </struts>
25
2.1 STRUTS2的STRUTS.XML配置文件
2.1.1 struts.xml配置文件结构 2.1.2 Bean配置
2.1.3 常量配置
2.1.4 包含配置 2.1.5 包配置 2.1.6 命名空间配置
一般习惯在struts.xml中配置Struts2的常量。
11
常量配置在struts.xml中格式如下: <constant name="属性名" value="属性值"/> <constant/>元素的常用属性有: name:指定常量(属性)的名字。 value:指中,配置国际化资源文件名和字符集的编码方式为“gb2312”,代码如 下:

struts2入门教程一(环境搭建,基本案例实现)CSDN

struts2入门教程一(环境搭建,基本案例实现)CSDN

Struts2入门初步需掌握1.struts2概述2.struts2环境搭建(第一个struts2的应用程序)3.struts.xml文件配置详解4.struts2请求的URL的搜索路径的顺序概述5.struts2工作原理概述6.struts2指定多个配置文件7.struts2动态方法调用8.使用通配符定义action一:简介Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。

Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。

虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

二:环境搭建搭建Struts2环境时,我们一般需要做以下几个步骤的工作:1.找到开发Struts2应用需要使用到的jar文件.下载官网:/download.cgi#struts221解压后:开始学习使用依赖的最基本的jar 包2:编写Struts2的配置文件解压其中一个案例在此目录下找到struts.xml 文件先拷贝到项目的src 下。

再对起进行修改。

删除剩余如下代码:[html]01.<?xml version ="1.0"encoding ="UTF-8" ?> 02.<!DOCTYPE struts PUBLIC 03."-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN" 04."/dtds/struts-2.3.dtd"> 05.06.<struts> 07.08. </struts>无法加载插件。

01、struts2(Struts2开发入门 、常用配置、参数传递) - 副本

01、struts2(Struts2开发入门 、常用配置、参数传递) - 副本

1. Struts2简介1.1. 什么是Struts21.1.1. Struts2的概念Struts2是轻量级的MVC框架,它主要解决了请求分发的问题,重心在于控制层和表现层。

轻量级,指的是Struts2具有较低的侵入性,就是它对我们业务代码的依赖程度很低,简单来说,在使用Struts2框架时,我们的业务代码中基本上不需要import它的包。

Struts2实现了MVC,满足了MVC设计思想。

在我们使用Struts2做开发的时候,就相当于使用了MVC,这是Struts2自动帮助我们实现的,是默认的、隐含的,我们不需要再写特别的代码来实现MVC了。

作为一个框架,Struts2提供了一系列的API,我们可以使用它们来简化代码的编写,从而提升开发效率。

这些API复用程度很高,对业务代码的依赖性也很小,甚至很多是Struts2自动调用的,因此在很大程度上,我们的开发变得可以复用。

Struts2解决请求分发的问题,我们会在后面为什么使用Struts2中讲解。

重心在控制层和表现层,是纵观整个Struts2理论课程来看的,从中我们会体会到这一点,随着大家对Struts2的逐步了解,届时我们再回顾这一点。

1.1.2. 什么是MVCMVC是代码的分层思想,是软件设计领域经典的设计模式。

它根据代码功能的不同,将一个软件的代码分为3部分,即模型、视图、控制器,这3部分代码的含义和功能如下。

1、M-Model 模型模型(Model)的职责是负责业务逻辑。

包含两层:业务数据和业务处理逻辑。

比如实体类、DAO、Service都属于模型层。

2、V-View 视图视图(View)的职责是负责显示界面和用户交互(收集用户信息)。

属于视图的组件是不包含业务逻辑和控制逻辑的JSP。

3、C-Controller 控制器控制器是模型层M和视图层V之间的桥梁,用于控制流程。

比如:在Servlet项目中的单一控制器ActionServlet。

struts2总结

struts2总结

Action注入
<!-- action注入 --> <package name="hjj" namespace="/ts253" extends="struts-default"> <action name="nsklovehjj" class="org.nsk.web.action.InsertAction" method="ok"> <param name="birthday">1992-0312</param> <result name="success">/WEBINF/ch03/showOutBirthday.jsp</result> </action> </package>
配置常用的常量介绍
1访问action的后缀修改所配置的常来 <constant name=”struts.action.extension” value=”do”/> 即,以*.do访问struts里面的action 也可以定义多个访问后缀,value中间用逗号分隔.如value=”do,action,nsk” 2配置默认编码集: <constant name=”struts.i18n.encoding” value=”utf-8” /> 3系统是否自动加载struts.xml.比如,修改了struts.xml,如果value=true,则就可以不必重新加载 项目. <constant name=”struts.configuration.xml.reload” value=”true”/> 默认 value=false; 4输出更详细的错误信息 <constant name=”struts.devMode” value=”true” /> 5指定由Spring负责action对象的创建 <constant name=”struts.objectFactory” value=”spring” /> 6设定上传文件的总大小限制 <constant name=”struts.multipart.maxSize” value=”1024”/> 7设定是否支持动态方法的调用 <constrant name=”struts.enable.DynamicMethodlnvocation” value=”false” />

struts2

struts核心 包
加载struts2
要使用struts2,必须在web.xml中进行配置
以过滤器的形式加载 struts2
过滤器所在包: org.apache.struts2. dispatcher.FilterDi spatcher
加载struts2
以过滤器的形式加载struts2
struts2以过滤器的形式加载到工程中,在web.xml中配置: <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
struts2中的命名空间起到模块化的作用。这个包下 的所有Action(请求的处理类),都应该以: /[命名空间名]/[Action名]来访问 命名空间的名字都应该以“/”开头,如果不配置命名 空间,则默认的就是namespace=“/”。 一个包下不能存在名字相同的Action
struts2常用配置-Action配置
name属性配置Action的名字
class属性配置Action类的完整类路径,说明 用哪个类处理提交的请求。
struts2常用配置-Action配置
LoginAction.java public class LoginAction extends ActionSupport { private String userName; private String password; public void setUserName(String userName) { erName = userName; } public void setPassword(String password) { this.password = password; } public String execute() throws Exception { return SUCCESS; } } 每个请求处理类必须继 承ActionSupport 对应页面表单元素名 对应的表单元素名必须 给出set方法 处理请求的方法。方法 名默认为execute struts2中,所提交的请求 应以.action结尾

Struts2课件

Sturuts2第一节、Struts2介绍Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。

Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。

虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

Struts2对Struts1进行了巨大的改进。

主要表现在如下几个方面: 在Action的实现方面:Struts1要求必须统一扩展自Action类,而Struts2中可以是一个POJO。

线程模型方面:Struts1的Action是单实例的,一个Action的实例处理所有的请求。

Struts2的Action是一个请求对应一个实例(每次请求时都新new出一个对象),没有线程安全方面的问题。

Servlet依赖方面:Struts1的Action依赖于Servlet API,比如Action的execute方法的参数就包括request和response对象。

这使程序难于测试。

Struts2中的Action不再依赖于Servlet API,有利于测试,并且实现TDD。

封装请求参数:Struts1中强制使用ActionForm对象封装请求的参数。

Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。

表达式语言方面:Struts1中整合了EL,但是EL对集合和索引的支持不强,Struts2整合了OGNL(Object Graph NavigationLanguage)。

绑定值到视图技术:Struts1使用标准的JSP,Struts2使用"ValueStack"技术。

Struts2---(Conventios实现零配置) 1

1。

1. 设置结果页面路径默认所有的结果页面都存储在WEB-INF/content下,你可以通过设置struts。

convention。

result.path这个属性的值来改变到其他路径。

如:Xml代码:<constant name="struts.convention。

result.path" value="/WEB-INF/page” />则将路径配置到了WEB-INF/page 下。

1.2。

设置Convention搜索包默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action 类的路径来搜索。

你可以通过设置struts。

convention。

package.locators属性来修改这个配置。

如:<constant name=”struts。

convention.package。

locators” value="web,action”/〉则定义了在项目中,包路径包含web和action的将被视为Action存在的路径来进行搜索。

tb。

web.*/tb。

action.*都将被视为含有Action的包路径而被搜索.接着,Convention从前一步找到的package以及其子package中寻找com。

opensymphony.xwork2.Action 的实现以及以Action结尾的类:com。

example.actions。

MainActioncom。

example.actions.products.Display (implements com。

opensymphony.xwork2。

Action)com。

example。

pany.details.ShowCompanyDetailsAction—-———---—--—>特别注意这点,命名空间,现在是搞懂点了………〈constant name="struts.convention。

Struts2复习


• struts.multipart.saveDir:该常量指定上传文件的临时保存路径, 该常量的默认值是javax.servlet.context.tempdir。 • struts.multipart.maxSize:该常量指定Struts 2文件上传中整个请 求内容允许的最大字节数。 • struts.custom.properties:该常量指定Struts 2应用加载用户自定 义的属性文件,该属性文件配置的常量不会覆盖struts.properties 文件中配置的常量。如果需要加载多个自定义属性文件, 多个自 定义属性文件的文件名应以英文逗号(,)隔开。 • struts.mapper.class:指定将HTTP请求映射到指定Action的映射 器,Struts 2提供了默认的映射器: org.apache.struts2.dispatcher.mapper.DefaultActionMapper。默 认映射 器根据请求的前缀与Action的name属性完成映射。
struts.action.extension:该常量指定需要Struts 2处理的请求后缀,该常量的 默认值是action,即所有匹配*.action的请求都由Struts 2处理。如果用户需 要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 struts.server.static:该常量设置是否通过JAR文件提供静态内容服务,该常 量只支持true和false值,该常量的默认属性值是true。 struts.server.static.browserCache:该常量设置浏览器是否缓存静态内容。当 应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设 置该常量为false。 struts.enable.DynamicMethodInvocation:该常量设置Struts 2是否支持动态 方法调用,该常量的默认值是true。如果需要关闭动态方法调用,则可设置 该常量为false。 struts.enable.SlashesInActionNames:该常量设置Struts 2是否允许在Action 名中使用斜线,该常量的默认值是false。如果开发者希望允许在Action名中 使用斜线,则可设置该常量为true。 struts.tag.altSyntax:该常量指定是否允许在Struts 2标签中使用表达式语法 ,因为通常都需要在标签中使用表达式语法,故此常量应该设置为true,该 常量的默认值是true。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档