Struts2文件类型汇总

合集下载

Struts2配置文件详解——s...

Struts2配置文件详解——s...
32.<beantype="org.apache.struts2.dispatcher.mapper.ActionMapper"name="restful2"class="org.apache.struts2.dispatcher.mapper.Restful2ActionMapper"/>
33.
34.<beantype="org.apache.struts2.dispatcher.multipart.MultiPartRequest"name="struts"class="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest"scope="default"optional="true"/>
63.
64.<beantype="com.opensymphony.xwork2.TextProvider"name="struts"class="com.opensymphony.xwork2.TextProviderSupport"/>
65.
66.
67.<!-- Struts2中一些可以静态注入的bean,也就是不需要实例化的 -->
11.
12.<beantype="com.opensymphony.xwork2.ActionProxyFactory"name="xwork"class="com.opensymphony.xwork2.DefaultActionProxyFactory"/>

2struts2中常用的配置文件及result返回类型

2struts2中常用的配置文件及result返回类型

1.web.xml文件主要完成对StrutsPrepareAndExecuteFilter的配置(在以前的版本中是对FilterDispatcher配置,新版本同样支持用FilterDispatcher配置),它的实质是一个过滤器,它负责初始化整个Struts框架并且处理所有的请求。

这个过滤器可以包括一些初始化参数,有的参数指定了要加载哪些额外的xml 配置文件,还有的会影响struts框架的行为。

除了StrutsPrepareAndExecuteFilter外,Struts还提供了一个ActionContexCleanUp类,它的主要任务是当有其它一些过滤器要访问一个初始化好了的struts框架的时候,负责处理一些特殊的清除任务。

2.struts.xml文件框架的核心配置文件就是这个默认的struts.xml文件,在这个默认的配置文件里面我们可以根据需要再包括其它一些配置文件。

在通常的应用开发中,我们可能想为每个不同的模块单独配置一个struts.xml文件,这样也利于管理和维护。

这也是我们要配置的主要文件3.struts.properties(参default.properties)在Struts框架使用了很多属性,我们可以通过改变这些属性来满足我们的需求。

要改变这些属性,只需在struts.properties文件中指定属性的key和value即可。

属性文件可以放在任何一个包含在classpath中的路径上,但是通常我们都把它放在/WEB-INF/classes目录下面。

我们可以在struts-default.properties文件中找到一个属性的列表。

4.struts-default.xml此文件是struts2框架默认加载的配置文件,它定义了struts2一些核心bean和拦截器,它会自动包含(included)到struts.xml文件中(实质是通过<package extends="struts-default">),并为我们提供了一些标准的配置。

02_Struts2

02_Struts2

struts-test2.xml 被包含的strtus-test2.xml必须是 标准的Struts2配置文件,一样 包含了DTD信息、struts根元素 等信息。
2.5 struts.xml之interceptors
Interceptor允许在Action处理之前或者之后插入自定义的代码。 使用interceptor可以完成如下操作:进行权限控制、跟踪日志、事务管理等。 可以将多个interceptor组合在一起形成一个interceptor stack。 Interceptor配置示例: struts-default.xml片段 片段
struts.xml
显示效果
2.14 动态结果 、全局结果
动态结果
全局结果的作用范围是 当前package下所有的 Action有效。
2.15 模型驱动
在Action中把用户请求数据封装成模型对象,Action需要实现 ModelDriven接口,并实现Object getModel()方法
UserAction.java
2.12 默认Action
用户请求非常简单,不需要系统过多的处理或者只是一个简单的转发,可以通过定义 name为*的Action(该Action应该放在最后定义)实现。
无class属性时默认 class为ActionSupport
Struts2还允许在容器中定义一个默认的Action,当用户请求的URL在容器中找不到 时,系统将使用此Action处理用户请求。
User.java
2.16 异常机制
任何成熟的MVC框架都提供成熟的异常处理机制,当然也可在方法中手动捕获,但这种处理方 式比较繁琐,需要书写当量的catch块,最大的缺点还在于异常处理与代码耦合,一旦需要改变异 常处理方式必须得修改代码。Struts2提供了一种声明式异常处理方式

Struts2文件类型汇总

Struts2文件类型汇总

'.a':'application/octet-stream', '.ai':'application/postscript', '.aif':'audio/x-aiff','.aifc':'audio/x-aiff','.aiff':'audio/x-aiff','.au':'audio/basic','.avi':'video/x-msvideo','.bat':'text/plain','.bcpio':'application/x-bcpio', '.bin':'application/octet-stream', '.bmp':'image/x-ms-bmp','.c':'text/plain',#Duplicates:('.cdf':'application/x-cdf','.cdf':'application/x-netcdf', '.cpio':'application/x-cpio','.csh':'application/x-csh','.css':'text/css','.dll':'application/octet-stream', '.doc':'application/msword', '.dot':'application/msword', '.dvi':'application/x-dvi','.eml':'message/rfc822','.eps':'application/postscript', '.etx':'text/x-setext','.exe':'application/octet-stream', '.gif':'image/gif','.gtar':'application/x-gtar','.h':'text/plain','.hdf':'application/x-hdf','.htm':'text/html','.html':'text/html','.ief':'image/ief','.jpe':'image/jpeg','.jpeg':'image/jpeg','.jpg':'image/jpeg','.js':'application/x-javascript', '.ksh':'text/plain','.latex':'application/x-latex','.m1v':'video/mpeg','.man':'application/x-troff-man', '.me':'application/x-troff-me', '.mht':'message/rfc822','.mhtml':'message/rfc822','.mov':'video/quicktime','.movie':'video/x-sgi-movie','.mp2':'audio/mpeg','.mp3':'audio/mpeg','.mpa':'video/mpeg','.mpe':'video/mpeg','.mpeg':'video/mpeg','.mpg':'video/mpeg','.ms':'application/x-troff-ms','.nc':'application/x-netcdf','.nws':'message/rfc822','.o':'application/octet-stream','.obj':'application/octet-stream','.oda':'application/oda','.p12':'application/x-pkcs12','.p7c':'application/pkcs7-mime','.pbm':'image/x-portable-bitmap', '.pdf':'application/pdf','.pfx':'application/x-pkcs12','.pgm':'image/x-portable-graymap', '.pl':'text/plain','.png':'image/png','.pnm':'image/x-portable-anymap', '.pot':'application/vnd.ms-powerpoint', '.ppa':'application/vnd.ms-powerpoint', '.ppm':'image/x-portable-pixmap', '.pps':'application/vnd.ms-powerpoint', '.ppt':'application/vnd.ms-powerpoint', '.ps':'application/postscript','.pwz':'application/vnd.ms-powerpoint', '.py':'text/x-python','.pyc':'application/x-python-code', '.pyo':'application/x-python-code', '.qt':'video/quicktime','.ra':'audio/x-pn-realaudio','.ram':'application/x-pn-realaudio', '.ras':'image/x-cmu-raster','.rdf':'application/xml','.rgb':'image/x-rgb','.roff':'application/x-troff','.rtx':'text/richtext','.sgm':'text/x-sgml','.sgml':'text/x-sgml','.shar':'application/x-shar','.snd':'audio/basic','.so':'application/octet-stream','.src':'application/x-wais-source','.sv4cpio':'application/x-sv4cpio','.sv4crc':'application/x-sv4crc','.swf':'application/x-shockwave-flash','.t':'application/x-troff','.tar':'application/x-tar','.tcl':'application/x-tcl','.tex':'application/x-tex','.texi':'application/x-texinfo','.texinfo':'application/x-texinfo','.tif':'image/tiff','.tiff':'image/tiff','.tr':'application/x-troff','.tsv':'text/tab-separated-values','.txt':'text/plain','.ustar':'application/x-ustar','.vcf':'text/x-vcard','.wav':'audio/x-wav','.wiz':'application/msword','.wsdl':'application/xml','.xbm':'image/x-xbitmap','.xlb':'application/vnd.ms-excel',#Duplicates:('.xls':'application/excel','.xls':'application/vnd.ms-excel','.xml':'text/xml','.xpdl':'application/xml','.xpm':'image/x-xpixmap','.xsl':'application/xml','.xwd':'image/x-xwindowdump','.zip':'application/zip',firefox和ie的文件类型区别Java代码firefox image/jpeg image/bmp image/gif image/png ie6image/pjpeg image/bmp image/gif image/x-pngie7image/pjpeg image/bmp image/gif image/x-pngie8image/pjpeg image/bmp image/gif image/x-png1.IE下载Office2007文件时在下载对话框中变成ZIP文件问题的解决2.3.4.从IIS或者Tomcat之类的Web服务器通过二进制流下载文件时(比如通过设置Header为Content-disposition:inline),如果被下载的文件是Office2007的dotx,docx,pot等后缀的时候,下载对话框中的图标会变成ZIP的,相应的文件名也会成为zip为扩展后缀的文件。

struts2文件上传文件类型设置

struts2文件上传文件类型设置

struts2是根据contentType来限制的,并不是文件的扩展名比如我想仅上传image/png,image/gif,image/jpeg这三种文件类型第一种方法是通过javascript校验来限制,这个比较简单,获取input的value 然后截取扩展名进行判断即可第二种是根据struts2自带的fileupload拦截器中提供的allowedTypes来进行限制,步骤如下:1 配置fileupload拦截器struts2的defaultStack中已经含有fileupload拦截器,如果想加入allowedTypes 参数,需要从新写一个defaultstack ,拷贝过来修改一下即可:<interceptor-stack name="myDefaultStack"><interceptor-ref name="exception"/><interceptor-ref name="alias"/><interceptor-ref name="servletConfig"/><interceptor-ref name="i18n"/><interceptor-ref name="prepare"/><interceptor-ref name="chain"/><interceptor-ref name="debugging"/><interceptor-ref name="profiling"/><interceptor-ref name="scopedModelDriven"/><interceptor-ref name="modelDriven"/><interceptor-ref name="fileUpload"><param name="allowedTypes">image/png,image/gif,image/jpeg</param></interceptor-ref><interceptor-ref name="checkbox"/><interceptor-ref name="staticParams"/><interceptor-ref name="actionMappingParams"/><interceptor-ref name="params"><paramname="excludeParams">dojo\..*,^struts\..*</param></interceptor-ref><interceptor-ref name="conversionError"/><interceptor-ref name="validation"><paramname="excludeMethods">input,back,cancel,browse</param></interceptor-ref><interceptor-ref name="workflow"><paramname="excludeMethods">input,back,cancel,browse</param></interceptor-ref></interceptor-stack></interceptors><default-interceptor-refname="myDefaultStack"></default-interceptor-ref>仅修改代码中的<interceptor-ref name="fileUpload"><param name="allowedTypes">image/png,image/gif,image/jpeg</param></interceptor-ref>上面配置的是上传文件类型的限制,其实共有两个参数maximumSize (可选) - 这个拦截器允许的上传到action中的文件最大长度(以byte为单位). 注意这个参数和在webwork.properties中定义的属性没有关系,默认2MBallowedTypes (可选) - 以逗号分割的contentType类型列表(例如text/html),这些列表是这个拦截器允许的可以传到action中的contentType.如果没有指定就是允许任何上传类型.2 jsp页面定义如下(testFileUpload.jsp)<s:form action="testFileUpload" method="post"enctype="multipart/form-data"><s:file name="file"theme="simple"/><s:fielderror name="file"></s:fielderror><s:submit/></s:form>3 后台的action声明如下(我用的是struts2的注解进行action配置)public class TestFileUploadAction extends ActionSupport{private File file;private String fileContentType;private String fileFileName;@Action(value = "testFileUpload", results = {@Result(name = "input", location = "/testFileUpload.jsp"),@Result(name = "success", location ="/testFileUploadSuccess.jsp")})public String execute() {return SUCCESS;}get/set......}注意:如果jsp中file的name="xxx",那么后台action中的属性要做相应更改为private File xxx;private String xxxContentType;private String xxxFileName;同时注意大小写一定要一致4 定义错误文件类型的消息提示,这个需要用到struts2的资源文件,在struts.properties文件中加入struts.custom.i18n.resources=globalMessagesglobalMessages对应着资源文件名5 在源文件夹下定义资源文件globalMessages.properties,并在里面加入如下信息:struts.messages.error.content.type.not.allowed=upload file contenttype is invalidate这里稍作说明(拷贝一下struts2的帮助):如果你的action实现了ValidationAware接口(如果action继承了ActionSupport,那么就相当于实现了ValidationAware),这个拦截器就可以添加几种字段错误.这些错误信息是基于存储在struts-messages.properties文件中的一些i18n值,这个文件是所有i18n请求的默认文件.你可以在自己消息文件的复写以下key的消息文字struts.messages.error.uploading - 文件不能上传的通用错误信息rge - 上传文件长度过大的错误信息struts.messages.error.content.type.not.allowed - 当上传文件不符合指定的contentType以上配置完毕后,测试一下,对于非法的contentType,例如xxx.log这个文件的的contentType是pplication/octet-stream会给出提示:upload file contenttype is invalidate'.a' : 'application/octet-stream','.ai' : 'application/postscript','.aif' : 'audio/x-aiff','.aifc' : 'audio/x-aiff','.aiff' : 'audio/x-aiff','.au' : 'audio/basic','.avi' : 'video/x-msvideo','.bat' : 'text/plain','.bcpio' : 'application/x-bcpio','.bin' : 'application/octet-stream','.bmp' : 'image/x-ms-bmp','.c' : 'text/plain','.cdf' : 'application/x-cdf','.cdf' : 'application/x-netcdf','.cpio' : 'application/x-cpio','.csh' : 'application/x-csh','.css' : 'text/css','.dll' : 'application/octet-stream', '.doc' : 'application/msword', '.dot' : 'application/msword','.dvi' : 'application/x-dvi','.eml' : 'message/rfc822','.eps' : 'application/postscript', '.etx' : 'text/x-setext','.exe' : 'application/octet-stream', '.gif' : 'image/gif','.gtar' : 'application/x-gtar','.h' : 'text/plain','.hdf' : 'application/x-hdf','.htm' : 'text/html','.html' : 'text/html','.ief' : 'image/ief','.jpe' : 'image/jpeg','.jpeg' : 'image/jpeg','.jpg' : 'image/jpeg','.js' : 'application/x-javascript', '.ksh' : 'text/plain','.latex' : 'application/x-latex','.m1v' : 'video/mpeg','.man' : 'application/x-troff-man', '.me' : 'application/x-troff-me', '.mht' : 'message/rfc822','.mhtml' : 'message/rfc822','.mif' : 'application/x-mif','.mov' : 'video/quicktime','.movie' : 'video/x-sgi-movie','.mp2' : 'audio/mpeg','.mp3' : 'audio/mpeg','.mpa' : 'video/mpeg','.mpe' : 'video/mpeg','.mpeg' : 'video/mpeg','.mpg' : 'video/mpeg','.ms' : 'application/x-troff-ms', '.nc' : 'application/x-netcdf', '.nws' : 'message/rfc822','.o' : 'application/octet-stream','.obj' : 'application/octet-stream','.oda' : 'application/oda','.p12' : 'application/x-pkcs12','.p7c' : 'application/pkcs7-mime','.pbm' : 'image/x-portable-bitmap','.pdf' : 'application/pdf','.pfx' : 'application/x-pkcs12','.pgm' : 'image/x-portable-graymap', '.pl' : 'text/plain','.png' : 'image/png','.pnm' : 'image/x-portable-anymap', '.pot' : 'application/vnd.ms-powerpoint', '.ppa' : 'application/vnd.ms-powerpoint', '.ppm' : 'image/x-portable-pixmap','.pps' : 'application/vnd.ms-powerpoint', '.ppt' : 'application/vnd.ms-powerpoint', '.ps' : 'application/postscript','.pwz' : 'application/vnd.ms-powerpoint', '.py' : 'text/x-python','.pyc' : 'application/x-python-code','.pyo' : 'application/x-python-code','.qt' : 'video/quicktime','.ra' : 'audio/x-pn-realaudio','.ram' : 'application/x-pn-realaudio', '.ras' : 'image/x-cmu-raster','.rdf' : 'application/xml','.rgb' : 'image/x-rgb','.roff' : 'application/x-troff','.rtx' : 'text/richtext','.sgm' : 'text/x-sgml','.sgml' : 'text/x-sgml','.sh' : 'application/x-sh','.shar' : 'application/x-shar','.snd' : 'audio/basic','.so' : 'application/octet-stream','.src' : 'application/x-wais-source', '.sv4cpio': 'application/x-sv4cpio','.sv4crc' : 'application/x-sv4crc','.swf' : 'application/x-shockwave-flash', '.t' : 'application/x-troff','.tar' : 'application/x-tar','.tcl' : 'application/x-tcl','.tex' : 'application/x-tex','.texi' : 'application/x-texinfo','.texinfo': 'application/x-texinfo','.tif' : 'image/tiff','.tiff' : 'image/tiff','.tr' : 'application/x-troff','.tsv' : 'text/tab-separated-values', '.txt' : 'text/plain','.ustar' : 'application/x-ustar','.vcf' : 'text/x-vcard','.wav' : 'audio/x-wav','.wiz' : 'application/msword','.wsdl' : 'application/xml','.xbm' : 'image/x-xbitmap','.xlb' : 'application/vnd.ms-excel', '.xls' : 'application/excel','.xls' : 'application/vnd.ms-excel', '.xml' : 'text/xml','.xpdl' : 'application/xml','.xpm' : 'image/x-xpixmap','.xsl' : 'application/xml','.xwd' : 'image/x-xwindowdump', '.zip' : 'application/zip',。

Struts2中常用的.properties文件、xml文件的命名方式、存放位置以及详解。

Struts2中常用的.properties文件、xml文件的命名方式、存放位置以及详解。

Struts2中常用的.properties文件、xml文件的命名方式、存放位置以及详解。

文件来源:/vipmao/article/details/51204834一:局部转换文件文件名格式:ActionName-conversion.propertiesActionName为需要Action的类名,-conversion.properties为固定部分。

文件存放位置:文件应放在和Action相同的位置。

下面用代码说话,具体实例:(实现:用户输入xxx,xxx格式字符串通过类型转换器将逗号前部分作为用户名后部分作为密码验证。

)1:前台表单[javascript] view plain copy1.<body>2.<s:fielderror/>3.<h2>局部类型转换器</h2>4.<s:form action="jubuLogin">5.<s:text name="user"/><s:textfield name="user"/>6.<s:submit value="转换"></s:submit>7.</s:form>8.</body>2:Action -->jubuAction[java] view plain copy1.package com.mao;2.3.import com.opensymphony.xwork2.Action;4.import com.opensymphony.xwork2.ActionSupport;5.6.public class jubuAction extends ActionSupport{7.private User user;8.private String tip;9.//省略set get方法10.public String execute() throws Exception {11.// TODO Auto-generated method stub12.if(getUser().getName().equals("mao")&&getUser().get Pass().equals("3214")){13.setTip("登录成功");14.return SUCCESS;15.16.}else{17.return ERROR;18.}19.}20.21.22.}封装用户请求和提示信息。

Struts2各种核心配置文件

Struts2各种核心配置文件

6、struts.xml文件中的主要配置标签含义
7、Struts 2框架中的struts.properties文件 (1)struts.properties文件的主要作用
(2)struts.properties文件的基本格式
(3)struts.properties文件中的常用属性及含义
8、struts.properties文件的应用示例 ---解决Struts2中的表单提交时的中文乱码问题
3、子曰:“三人行,必有我师焉” 4、子曰:“我非生而知之者,好古,敏以求之者也” 5、师者:“传道、授业和解惑”
9、体验Struts2对多配置文件的支持
将struts.xml分离为两个不同的配置文件:其中在 struts.xml中存放全局配置定义,而在struts-XXX.xml中存 放与某个模块有关的配置定义——满足团队开发。
努力学习以实现自己的人生理想和目标
1、子曰:“学而不思则罔,思而不学则殆。” “学而时习之” 2、子曰:“知之者不如好之者,好之者不如乐之者”
(2)该配置文件所使用的*.dtd文件
(3)Struts 2框架也支持多配置文件 为什么要提供该技术
某个项目中的多配置文件应用示例
(4)如何实现配置文件的包含
4、在struts.xml文件中配置出应用系统的Action组件类
(1)默认返回的结果的“名称”都为“success”、“类型” 为转发
各种核心配置文件 (System Core Configuration )
杨少波
trainict@
中科院计算所职业培训中心
各种核心配置文件
在本讲您能了解如下知识点 (The Emphases in Teaching Materials) 应用Struts2时所涉及的各种配置文件 默认的核心系统配置项目及配置文件 核心配置文件struts.xml及应用 struts.properties文件及应用 struts.properties常用属性及含义

struts2配置文件

struts2配置文件
6

struts.xml

命名空间

在web中如果有需要多个同名的action,可以通过 <package>元素的namespace属性指定命名空间来管 理action。
<package name="test" extends="struts-default"> ,如果未指 定命名空间,则命名空间默认为 “ namespace="" ”。


<package name="get" extends="struts-default" namespace="/apple">

<action name="getUsers" class="org.GetUsersAction"> http://localhost:8080/web应用名/apple/getUsers.action
struts.xml

<action>标签

<action name=""> <result>.</result> </action> 该action定义可以列出web应用根路径下的所有 页面

9
struts.xml

<result>标签

name---指定需要映射的逻辑视图名

默认为success 默认为dispatcher,转发,用于与jsp整合的结果类 型


配置struts.properties

Struts2的配置文件详解

Struts2的配置文件详解
Struts2的命名空间的作用等同于struts1里模块的作用。
1.3.包含配置:
在Struts2中可以将一个配置文件分解成多个配置文件,那么我们必须在struts.xml中包含其他配置文件。
<struts>
<includefile="struts-default.xml"/>
<includefile="struts-user.xml"/>
erName= userName;
}
/**
*@returnthepassword
*/
publicString getPassword() {
returnpassword;
}
/**
*@parampasswordthepasswordtoset
*/
publicvoidsetPassword(String password) {
</action>
</package>
</struts>
如上示例的配置,配置了一个名为default的包,该包下定义了一个Action。
1.2.命名空间配置:
考虑到同一个Web应用中需要同名的Action,Struts2以命名空间的方式来管理Action,同一个命名空间不能有同名的Action。
Struts2通过为包指定namespace属性来为包下面的所有Action指定共同的命名空间。
l public Map getSession():返回一个Map对象,该Map对象模拟了HttpSession实例。
l public void setSession(Map session):直接传入一个Map实例,将该Map实例里的key-value对转换成session的属性名-属性值对。

struts2的配置参数汇总.

struts2的配置参数汇总.

#该属性默认值为struts-default.xml,struts-plugin.xml,struts.xmlstruts.configuration.files=struts.xml#指Web应用的默认编码集。

是指该属性相当于在过滤器中调用HttpServletRequest.setCharacterEncoding("GBK")方法struts.i18n.encoding=utf-8#如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号隔开。

例如:struts.action.extension=action,jnlp,dostruts.action.extension=action#当struts.xml文件改变时系统是否自动重新加载该文件。

默认值为false。

struts.configuration.xml.reload=true#该属性设置struts2应用是否使用开发模式。

如果为true,则可以在应用出错是显示更多更友好的提示。

默认值为false。

struts.devMode = true#每次HTTP请求到达时,系统是否从新加载资源文件。

默认值为false。

struts.i18n.reload=true#该属性指定视图标签默认的视图主题,默认值是xhtmlstruts.ui.theme=simple#该属性指定在使用Struts2标签时是否可以使用表达是语法。

默认值为true。

struts.tag.altSyntax=true#指定加载Struts2配置文件的配置文件管理器。

该属性的默认只是org.apache.struts2.config.DefaultConfiguration。

#如果我们需要实现自己的配置管理器,则可以实现Configuration接口。

#然后将此属性的值改为自定义的配置管理器类。

#struts.configuration=org.apache.struts2.config.DefaultConfiguration#Struts2默认的对象工厂(IOC容器)为spring#struts.objectFactory = spring#指定Spring框架的自动装配模式,该属性默认值是name。

Struts2文档

Struts2文档

Struts2文档本章要点—纯手工创建一个Web应用—纯手工创建一个Strut2应用—实现Strut2的Action—配置Strut2的Action—在Action中访问HttpSeion—在JSP中输出Action的返回值—程序国际化初步—数据校验初步前面已经简要介绍了Strut2的起源,以及Strut2的两个前身:Strut1和WebWork,并详细对比了Strut2和Strut1的差异,对比了Strut2和WebWork的差异,而且指出:Strut2是WebWork的升级,而不是Strut1的升级。

虽然Strut2提供了与Strut1的兼容,但已经不是Strut1的升级。

对于已有Strut1开发经验的开发者而言,Strut1的开发经验对于Strut2并没有太大的帮助;相反,对于已经有WebWork开发经验的开发者而言,WebWork的开发经验对Strut2的开发将有很好的借鉴意义。

下面将以一个Strut2的HelloWorld应用为例,介绍Strut2MVC框架如何拦截用户请求,如何调用业务控制器处理用户请求,并介绍Action 处理结果和资源之间的映射关系。

本HelloWorld应用是一个简单的应用:用户进入一个登录页面,允许用户输入用户名、密码,如果用户输入的用户名和密码符合要求,则进入一个欢迎页面;如果用户输入错误,则进入一个提示页面。

当用户提交表单时,本应用会有基本的数据校验。

—doc:该文件夹下包含了Strut2的相关文档,包括Strut2的快速入门、Strut2的文档,以及API文档等内容。

—j4:该文件夹下包含了让Strut2支持JDK1.4的JAR文件。

—lib:该文件夹下包含了Strut2框架的核心类库,以及Strut2的第三方插件类库。

—rc:该文件夹下包含了Strut2框架的全部源代码。

将lib文件夹下的Strut2-core-2.0.6.jar、某work-2.0.1.jar和ognl-2.6.11.jar等必需类库复制到Web应用的WEB-INF/lib路径下。

struts2配置文件概述

struts2配置文件概述

1.创建WEB 工程2.导入必要jar包3.编写JSP 页面4.编写Action 服务器端处理逻辑5.进行框架配置web.xml、struts.xml6.运行测试过滤器配置/* , 使用struts2的过滤器处理所有的请求,但是此时struts2默认处理扩展名为*.action的请求struts-default是struts-default.xml定义的一个package,内含大量拦截器(18个)和结果集。

Action接口中定义的五个常量:success:Action业务逻辑执行成功none:不需要跳转结果页面,手动生成结果数据AJAXerror:Action执行逻辑发生错误input:用户输入数据非法login:没有权限访问Action处理完用户请求后,将返回一个普通字符串整个普通字符串就是一个逻辑视图名Struts2 根据逻辑视图名,决定响应哪个结果Struts2处理结果使用<result>元素配置局部结果:将<result>作为<action>子元素配置全局结果:将<result>作为<global-results>元素的子元素配置配置<result>元素通常需要指定两个属性name 该属性指定配置逻辑视图名type 该属性指定结果类型当多个action中都使用到了相同result,这时我们应该把result定义为全局结果。

注:局部的会覆盖全局dispatcher 结果类型将把控制权转发给应用程序里的某个资源.dispatcher 结果类型不能把控制权转发给一个外部资源.若需要把控制权重定向到一个外部资源, 应该使用redirect (重定向)结果类型struts2通过拦截器实现,struts-default.xml<interceptor name="modelDriven" class=“….ModelDrivenInterceptor"/>。

Struts2配置文件详解--精品版

Struts2配置文件详解--精品版
可以在 struts2 中使用插件,Struts2 在启动的时候,会自动搜索 classpath 中的 jar 包中的 struts-plugin.xml 文件来加载插件。关于插件的应用,将会在后面讲到。
7. struts.xml
struts.xml 文件中包含的是我们开发的 Action 的配置。如前面登录例子中的配置:
4. struts.properties 文件
这个文件提供了一种更改框架默认行为方式的机制。在一般情况下,如果不是打算让 调试更加方便的话,我们没有必要更改这个文件。哪么这些默认的属性在哪里存放呢? 在项目的 src 目录中可以自己编写一个名称为 struts.properties 文件, 编译以后就放 到了/WEB-INF/classes 中,Struts2 框架在启动的时候,会自动读取这个文件,但是在读 取这个文件之前,会先到 struts2-core-xxx.jar 包中加载名为 default.properties 文件, 这个文件中定义了默认的配置,所以我们可以在 strtus.properties 中定义一些配置覆盖 default.properties 中的配置,如果没有 struts.properties 文件,则采用默认配置。 打开 default.properties 文件我们会看到如下部分类容:
/
Copyright©2010 吴青版权所有
吴老师教学讲义
4
打开该文件, 可以看到一些全局的配置选项, 在这些选项中, 我们发现了有一些这样的配置, 其中 struts.action.extension 配置的就是 Struts 默认的请求后缀名。 关于更多的配置的含义, 后面用到了再讲解,现在暂时不必理会这些配置的含义.
### Used by the DefaultActionMapper ### You may provide a comma separated list, e.g. struts.action.extension=action,jnlp,do ### The blank extension allows you to match directory listings as well as pure action names ### without interfering with static resources. struts.action.extension=action,, ### This can be used to set your default locale and encoding scheme # struts.locale=en_US struts.i18n.encoding=UTF-8

struts2配置文件详解

struts2配置文件详解
"/dtds/struts-2.0.dtd">
<struts>
<!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<!-- 标准的UI主题,默认的UI主题为xhtml,可以为simple,xhtml或ajax -->
<cosntant name="struts.ui.theme" value="xhtml" />
<!-- spring 托管 -->
<constant name="struts.objectFactory" value="spring" />
<!--
指定加载struts2配置文件管理器,默认为org.apache.struts2.config.DefaultConfiguration
<!-- 设置默认的locale和字符编码 -->
<constant name="struts.locale" value="zh_CN" />
<constant name="struts.i18n.encoding" value="GBK" />
<!-- 该属性指定Struts 2文件上传中整个请求内容允许的最大字节数 -->

Struts2 namespace总结

Struts2 namespace总结
private String message;
public String getMessage() {
return message;
}
public String execute(){
1.首先寻找namespace为/path1/path2/path3的package,如果不存在这个package则执行步骤2;如果存在这个 package,则在这个package中寻找名字为test的action,当在该package下寻找不到action 时就会直接跑到默认namaspace的package里面去寻找action(默认的命名空间为空字符串""),如果在默认namaspace的 package里面还寻找不到该action,页面提示找不到action。
写完以后,部署成功后,在浏览器中输入相应的URL(如.../test/sayHello.action)就会显示出消息和时间。其中execute方法要求必须是返回一个字符串,因为struts2根据这个返回的字符串来决定调用哪个视图。从编码过程来看,Action类是完全的POJO类,没有依赖任何类或者接口。
接下来就是<action>元素的配置,其中name属性为访问时路径的一部分,class为类的全限定名,最后就是一个method属性,表示应该被调用的方法。里面的<result>元素和struts1的forward元素一样,相当于视图的配置。接下来就是Action和 JSP的代码片断:
public class HelloWorld {
</action>
</package>
</struts>
如上所示,struts2中是采用<package>元素来管理Action的,包的作用和java中的类包是非常类似的,它主要用于管理一组业务功能相关的action。在实际应用中,我们应该把一组业务功能相关的Action放在同一个包下。配置包时必须指定name属性,该name属性值可以任意取名,但必须唯一,它不对应java的类包,如果其它包要继承该包,必须通过该属性进行引用。包的namespace属性用于定义该包的命名空间,命名空间作为访问该包下Action的路径的一部分,如访问上面例子的Action,访问路径为:/test/sayHello.action。 namespace属性可以不配置,如果不指定该属性,默认的命名空间为空字符串。配置namespace有什么好处呢?就名称空间而言可以有效防止名字重复,即请求路径一样,这样就会导致错误。第二个就是当有名称空间时,可以减少配置的书写量,因为相同路径的action请求可以放置在同一个名称空间下,这样就不用每次都写出名称空间值所代表的路径。除了上述两个属性,通常每个包都应该继承struts-default包,因为Struts2很多核心的功能都是拦截器来实现。如:从请求中把请求参数封装到action、文件上传和数据验证等等都是通过拦截器实现的。 struts-default定义了这些拦截器和Result类型。因此,当包继承了struts-default才能使用struts2提供的核心功能。struts-default包是在struts2-core-2.x.x.jar文件中的struts-default.xml中定义。 struts-default.xml也是Struts2默认配置文件。 Struts2每次都会自动加载 struts-default.xml文件。细心点其实可以发现struts-default.xml的name为struts-default包有一个属性abstract="true",这表示该包为抽象包,抽象包中不能包含action,抽象包是专门用来被其它包来继承的。

2.Struts2配置文件

2.Struts2配置文件

2.Struts2配置⽂件1.配置⽂件的加载顺序0. 需要掌握* 加载了哪些个配置⽂件(重点的)* 配置⽂件的名称是什么* 配置⽂件的位置* 配置⽂件的作⽤1. Struts2框架的核⼼是StrutsPrepareAndExecuteFilter过滤器,该过滤器有两个功能* Prepare -- 预处理,加载核⼼的配置⽂件* Execute -- 执⾏,让部分拦截器执⾏2. StrutsPrepareAndExecuteFilter过滤器会加载哪些配置⽂件呢?* 通过源代码可以看到具体加载的配置⽂件和加载配置⽂件的顺序* init_DefaultProperties(); -- 加载org/apache/struts2/default.properties* init_TraditionalXmlConfigurations(); -- 加载struts-default.xml,struts-plugin.xml,struts.xml* init_LegacyStrutsProperties(); -- 加载⾃定义的struts.properties.* init_CustomConfigurationProviders(); -- 加载⽤户⾃定义配置提供者* init_FilterInitParameters() ; -- 加载web.xml3. 重点了解的配置⽂件* default.properties -- 在org/apache/struts2/⽬录下,代表的是配置的是Struts2的常量的值* struts-default.xml -- 在Struts2的核⼼包下,代表的是Struts2核⼼功能的配置(Bean、拦截器、结果类型等)* struts.xml -- 重点中的重点配置,代表WEB应⽤的默认配置,在⼯作中,基本就配置它就可以了!!(可以配置常量)* web.xml -- 配置前端控制器(可以配置常量)* 注意:* 前3个配置⽂件是struts2框架的默认配置⽂件,基本不⽤修改。

Struts2框架配置文件详解大全

Struts2框架配置文件详解大全

一、web.xml配置文件任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。

所有的MVC框架都需要web应用加载一个核心控制器,对于Struts2框架而言,需要加载FilterDispatche r,只要Web应用负责加载FilterDispatc her,FilterDispatc her将会加载饮用的Str uts2框架。

配置FilterDispatc her的代码片段如下:-------------------------------------web.xm l------------------------------------------------------------------- <?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5"><!-- 配置Struts2框架的核心Filter --><filter><!-- 配置Struts2核心Filter的名字 --><filter-name>struts2</filter-name><!-- 配置Struts2核心Filter的实现类 --><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</f ilter-class></filter><!-- 配置Filter拦截的URL --><filter-mapping><!-- 配置Struts2核心FilterDispatcher拦截所有用户请求 --><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>-------------------------------------------------------------------------------------------------------------------- 二、struts.properties配置文件Struts2框架有两个核心配置文件,其中struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。

struts2框架的6个配置文件

struts2框架的6个配置文件

Struts2的6个配置文件,分别是struts-default.xml,default.properties,struts-plugin.xml,struts.xml,struts.properties,web.xml1、struts-default.xml,里面放置的是struts2框架的核心东西,如bean类,package包,result type,interceptor拦截器等2、default.properties,properties类型的文件里面放置的是键值对,key和value,主要是对一些常量进行设定。

3、struts-plugin.xml,与第三方插件进行整合时需要使用的配置文件。

如我们和spring进行整合时,就需要使用到struts-spring-plugin.xml这个配置文件4、struts.xml,需要我们程序员在src目录下手动创建,在这个里面也可以对常量进行设定,使用的是constant标签,包含name和value属性。

5、struts.properties,这里也是对常量进行设定6、web.xml,这里设定struts2的启动项,使用的是filter和filter-mapping标签,也可以进行常量的设定,在filter标签里使用init-param标签。

但是我们一般不再这里设定。

这里有4个配置文件,可以对常量进行设定。

分别是default.properties,struts.xml,struts.properties,web.xml。

他们的优先级顺序是web.xml 优先级最高,其次是struts.properties,struts.xml,最后是default.properties。

我们最主要进行学习的就是struts.xml,其他的作为了解内容就可以了。

struts2的配置文件

struts2的配置文件
t;
<!-- 定义默认的拦截器 每个Action都会自动引用,如果Action中引用了其它的拦截器,默认的拦截器将无效 -->
<default-interceptor-ref name="mystack"></default-interceptor-ref>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
当前路径为web-inf/classes
struts2的配置文件
类型
struts2共有4类配置文件,
struts.properties:定义框架自身的全局变量。
struts-default.xml:定义框架自身使用的action映射及result定义。
struts-plugin.xml:struts插件使用的配置文件,比如当使用struts和spring结合时就需要在web.xml中引用该配置文件。
-->
<package name="com.kay.struts2" extends="struts-default" namespace="/test">
<interceptors>
<!-- 定义拦截器-->
<interceptor name="timer" class="com.kay.timer"></interceptor>
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

'.a':'application/octet-stream', '.ai':'application/postscript', '.aif':'audio/x-aiff','.aifc':'audio/x-aiff','.aiff':'audio/x-aiff','.au':'audio/basic','.avi':'video/x-msvideo','.bat':'text/plain','.bcpio':'application/x-bcpio', '.bin':'application/octet-stream', '.bmp':'image/x-ms-bmp','.c':'text/plain',#Duplicates:('.cdf':'application/x-cdf','.cdf':'application/x-netcdf', '.cpio':'application/x-cpio','.csh':'application/x-csh','.css':'text/css','.dll':'application/octet-stream', '.doc':'application/msword', '.dot':'application/msword', '.dvi':'application/x-dvi','.eml':'message/rfc822','.eps':'application/postscript', '.etx':'text/x-setext','.exe':'application/octet-stream', '.gif':'image/gif','.gtar':'application/x-gtar','.h':'text/plain','.hdf':'application/x-hdf','.htm':'text/html','.html':'text/html','.ief':'image/ief','.jpe':'image/jpeg','.jpeg':'image/jpeg','.jpg':'image/jpeg','.js':'application/x-javascript', '.ksh':'text/plain','.latex':'application/x-latex','.m1v':'video/mpeg','.man':'application/x-troff-man', '.me':'application/x-troff-me', '.mht':'message/rfc822','.mhtml':'message/rfc822','.mov':'video/quicktime','.movie':'video/x-sgi-movie','.mp2':'audio/mpeg','.mp3':'audio/mpeg','.mpa':'video/mpeg','.mpe':'video/mpeg','.mpeg':'video/mpeg','.mpg':'video/mpeg','.ms':'application/x-troff-ms','.nc':'application/x-netcdf','.nws':'message/rfc822','.o':'application/octet-stream','.obj':'application/octet-stream','.oda':'application/oda','.p12':'application/x-pkcs12','.p7c':'application/pkcs7-mime','.pbm':'image/x-portable-bitmap', '.pdf':'application/pdf','.pfx':'application/x-pkcs12','.pgm':'image/x-portable-graymap', '.pl':'text/plain','.png':'image/png','.pnm':'image/x-portable-anymap', '.pot':'application/vnd.ms-powerpoint', '.ppa':'application/vnd.ms-powerpoint', '.ppm':'image/x-portable-pixmap', '.pps':'application/vnd.ms-powerpoint', '.ppt':'application/vnd.ms-powerpoint', '.ps':'application/postscript','.pwz':'application/vnd.ms-powerpoint', '.py':'text/x-python','.pyc':'application/x-python-code', '.pyo':'application/x-python-code', '.qt':'video/quicktime','.ra':'audio/x-pn-realaudio','.ram':'application/x-pn-realaudio', '.ras':'image/x-cmu-raster','.rdf':'application/xml','.rgb':'image/x-rgb','.roff':'application/x-troff','.rtx':'text/richtext','.sgm':'text/x-sgml','.sgml':'text/x-sgml','.shar':'application/x-shar','.snd':'audio/basic','.so':'application/octet-stream','.src':'application/x-wais-source','.sv4cpio':'application/x-sv4cpio','.sv4crc':'application/x-sv4crc','.swf':'application/x-shockwave-flash','.t':'application/x-troff','.tar':'application/x-tar','.tcl':'application/x-tcl','.tex':'application/x-tex','.texi':'application/x-texinfo','.texinfo':'application/x-texinfo','.tif':'image/tiff','.tiff':'image/tiff','.tr':'application/x-troff','.tsv':'text/tab-separated-values','.txt':'text/plain','.ustar':'application/x-ustar','.vcf':'text/x-vcard','.wav':'audio/x-wav','.wiz':'application/msword','.wsdl':'application/xml','.xbm':'image/x-xbitmap','.xlb':'application/vnd.ms-excel',#Duplicates:('.xls':'application/excel','.xls':'application/vnd.ms-excel','.xml':'text/xml','.xpdl':'application/xml','.xpm':'image/x-xpixmap','.xsl':'application/xml','.xwd':'image/x-xwindowdump','.zip':'application/zip',firefox和ie的文件类型区别Java代码firefox image/jpeg image/bmp image/gif image/png ie6image/pjpeg image/bmp image/gif image/x-pngie7image/pjpeg image/bmp image/gif image/x-pngie8image/pjpeg image/bmp image/gif image/x-png1.IE下载Office2007文件时在下载对话框中变成ZIP文件问题的解决2.3.4.从IIS或者Tomcat之类的Web服务器通过二进制流下载文件时(比如通过设置Header为Content-disposition:inline),如果被下载的文件是Office2007的dotx,docx,pot等后缀的时候,下载对话框中的图标会变成ZIP的,相应的文件名也会成为zip为扩展后缀的文件。

相关文档
最新文档