Struts2文件下载

Struts2文件下载
Struts2文件下载

使用场景:

1)在JSP页面,有一个展现附件的列表。

2)对列表中的每一个附件,提供单独下载。

3)同时提供复选框,提供选择多个文件下载。

实现思路:

1)写一个通用的具有下载功能的Action,只需要接收一个文件路径就可以下载。单个附件的下载直接调用这个Action,只需要传递附件的路径即可。

2)多个文件下载,可以将多个文件的路径传递到一个处理Action,将多个文件打包成zip。然后重定向到通用的下载Action,同时传递zip包的路径给通用下载Action。

1、通用的下载Action。

这个Action里面有一个成员变量fileName,负责接收传递的文件路径。

这个Action的配置文件:

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"https://www.360docs.net/doc/b417254756.html,/dtds/struts-2.3.dtd">

class="cn.luxh.struts2.action.DownloadAction">

name="contentType">application/octet-stream

inputStream

name="contentDisposition">attachment;filename="${fileName}"

4096

2、处理多个附件下载的Action。

package cn.luxh.struts2.action;

import java.io.File;

import java.text.SimpleDateFormat;

import java.util.Date;

import cn.luxh.utils.ZipFileUtil;

import com.opensymphony.xwork2.ActionSupport;

/**

* 处理多个附件下载

* @author Luxh

*/

public class MultiFileDownloadAction extends ActionSupport { private static final long serialVersionUID = 2743077909387361587L;

//接收JSP页面传递过来的附件的路径

private String attachmentPath;

//最终压缩后的zip文件的路径,传递给通用的下载Action

private String fileName;

/**

* 下载多个附件

* 实现:将多个附近压缩成zip包,然后再下载zip包

*/

public String downloadMultiFile() {

//使用当前时间生成文件名称

String formatDate =new

SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());

//压缩后的zip文件存放路径

fileName = "D:/test/" + formatDate + ".zip";

if(attachmentPath != null && !"".equals(attachmentPath)) {

//将多个附件的路径取出

String[] attachmentPathArray = attachmentPath.split(",");

if(attachmentPathArray != null && attachmentPathArray.length >0) {

File[] files = new

File[attachmentPathArray.length];

for(int i=0;i

if(attachmentPathArray[i] != null) {

File file = new

File(attachmentPathArray[i].trim());

if(file.exists()) {

files[i] = file;

}

}

}

//将多个附件压缩成zip

https://www.360docs.net/doc/b417254756.html,pressFiles2Zip(files,fileName);

}

}

return SUCCESS;

}

public String getAttachmentPath() {

return attachmentPath;

}

public void setAttachmentPath(String attachmentPath) {

this.attachmentPath = attachmentPath;

}

public String getFileName() {

return fileName;

}

public void setFileName(String fileName) {

this.fileName = fileName;

}

}

Action中的压缩文件类ZipFileUtil参

考https://www.360docs.net/doc/b417254756.html,/luxh/archive/2012/06/28/2568758.html 配置文件:

class="cn.luxh.struts2.action.MultiFileDownloadAction"

method="downloadMultiFile">

download

/download

${fileName}

3、附件列表展现的JSP页面。

<%@ page contentType="text/html;charset=UTF-8" language="java"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

<%@ taglib uri="https://www.360docs.net/doc/b417254756.html,/jsp/jstl/core" prefix="c"%>

File Download

action="${pageContext.request.contextPath}/index/downloadMultiFile"

method="post">

var="attachment">

id="all" onchange="checkFile()">全选

文件名

文件路径

下载

name="attachmentPath" value="${attachment.filePath}">

${attachment.fileName}${attachment.filePath}

href="${pageContext.request.contextPath}/download/download?fileName=${attachmen t.filePath}">下载

f

Struts2配置文件通配符的使用说明

Struts2配置文件中使用通配符收藏 形式一:调用相同Action中的不同方法 /login.jsp /error.jsp /welcome.jsp 其中表达式{1}的值name属性值中第一个*的值。 如果用户请求的URL为loginAction.action,则调用Jcuckoo.LoginRegistAction中的login方法; 如果用户请求的URL为registerAction.action,则调用Jcuckoo.LoginRegistAction中的register方法;形式二:通过匹配,调用不同的Action的execute方法 /login.jsp /error.jsp /welcome.jsp 上面没有出现method属性,故默认调用对应的execute方法 如果用户请求的URL为LoginAction.action,则调用Jcuckoo.LoginAction中的execute方法; 如果用户请求的URL为RegisterAction.action,则调用Jcuckoo.RegisterAction中的execute方法; 形式三:动态结果 /input.jsp /{1}.jsp 当处理结果是input时,会转到/input.jsp页面

最新版本Struts2.3.12+Spring3.2.2+Hibernate4.2.0框架配置详细步骤

SSH框架搭建 Struts2.3.12+Spring3.2.2+Hibernate4.2.0 编号:SSH-S2-S3-H4 版本:V1.1 级别:公开 编写时间:2013-03-18

目录 1 导言 (1) 1.1 目的 (1) 1.2 范围 (1) 1.3 说明 (1) 2 搭建Struts2 (2) 2.1 搭建所需jar包 (2) 2.2 整合步骤 (2) 2.2.1 创建项目 (2) 2.2.2 导入jar包 (2) 2.2.3 配置web.xml (4) 2.2.4 创建web (4) 2.2.5 创建jsp页面 (5) 2.2.6 配置struts.xml (6) 2.2.7 配置Tomcat (6) 2.2.8 部署项目 (7) 2.3 测试 (8) 2.3.1 启动Tomcat (10) 2.3.2 测试Tomcat (10) 2.3.3 测试Struts (11) 3 整合Spring3 (12) 3.1 整合所需jar包 (12) 3.2 整合步骤 (12) 3.2.1 导入jar包 (12) 3.2.2 配置web.xml (12) 3.2.3 配置struts.xml (13) 3.2.4 配置spring.xml (13) 3.3 测试 (14)

3.3.1 启动Tomcat (14) 3.3.2 测试登录 (14) 4 整合Hibernate4 (15) 4.1 整合所需jar包 (15) 4.2 整合步骤 (15) 4.2.1 导入jar包 (15) 4.2.2 创建数据库ccc (15) 4.2.3 创建对象User (16) 4.2.4 生成映射文件User.hbm.xml (17) 4.2.5 创建dao (18) 4.2.6 创建service (19) 4.2.7 创建web (20) 4.2.8 配置jdbc.properties (21) 4.2.9 配置db.xml (22) 4.2.10 配置spring.xml (24) 4.2.11 配置struts.xml (24) 4.3 测试 (25) 4.3.1 启动Tomcat (25) 4.3.2 测试登录 (25)

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文件中(实质是通过),并为我们提供了一些标准的配置。我们可以在struts2-core.jar中找到这个文件。 5.其它配置文件 velocity.properties,struts-default.vm,struts-plugin.xml struts.xml文件的配置 Struts2的核心配置文件,由程序员开发编写,包含Action、result 等配置信息,主要负责管理Struts2框架的业务控制器Action。在开发中,当修改一些配置时总是不能及时地更新到服务器,我们总会重新部署或重启来更新改变的内容,在struts2中可以通过一个常量来达到此目的。即在struts.xml中的元素下增加如下内容:这样配置后,当配置文件修改保存时就会及时更新到服务器中。

02-Struts2的工作流程及配置文件

Struts2的工作流程及配置文件--- https://www.360docs.net/doc/b417254756.html, --- Struts2.0的流程图

从图中看到Struts2的工作流程如下: 1.服务器接收到的请求首先经过一组过滤器链(实际中的其他过滤器可能还包括诸如Spring 的字符过滤器CharactorEncodingFilter、V elocity的过滤器等,一般FilterDispatcher位于过滤器的最后一个执行),过滤器链按照你在web.xml中的配置顺序在接收客户请求时顺序执行,在向客户发送响应时反序执行,Struts2的核心FilterDispatcher在web.xml中的配置如下: setCharactor org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 struts2 org.apache.struts2.dispatcher.FilterDispatcher setCharactor /* struts2 /* 注意:如果你使用的是W ebLogic6.1作为应用服务器,需要使用FilterDispatcherCompatW eblogic61替代FilterDispatcher。 2.请求被送到FilterDispatcher之后,FilterDispatcher会通过其私有静态的属性ActionMapper 询问这个请求是否需要调用Action处理,如果需要调用Action,FilterDispatcher会把请求委托给ActionProxy,ActionProxy调用ActionInvocation查找配置文件中该Action的所有信息,并以这个Action为目标创建代理对象(因为Struts2中的Action由于XWork的设计理念,并没有与Servlet的API被调用,所以如果直接调用Action的实例,那么显然基于HTTP 的请求都将无法传入Action。Struts2通过创建Action的代理对象,并使用拦截器将HTTP 的请求信息传入代理对象,这是典型的AOP处理方式,这也实现了控制器与Servlet的API 的分离,这是Struts1.x所欠缺的优秀的设计方式),然后执行该Action之前的所配置的所有拦截器,与过滤器相同,在接受请求时,会顺序执行你在配置文件中为该Action配置的拦截器顺序; 3.在穿越拦截器之后,就会执行Action,当Action执行完毕,ActionInvocation就要使用result

最详细eclipse配置struts2

第一章lectery的学习笔记 1.1Eclipse下搭建Struts2开发环境 博客分类: Java EclipseTomcatJSPStrutsJDK 作者:bukebushuo 来源:https://www.360docs.net/doc/b417254756.html,/bukebushuo/archive/2007/03/29/1545728.aspx 最近下载了最新的struts 2.06,在使用其中附带的例子时,在配置上遇到了一些问题。 经过很多次的努力后,终于配置成功。现在把配置过程写出来供大家参考! 一软件:1 Eclipse+lomboz 3.2 下载地址: https://www.360docs.net/doc/b417254756.html,/project/showfiles.php?group_id=97&release_id= 1864(网页) https://www.360docs.net/doc/b417254756.html,/project/download.php?group_id=97&file_id=7714(文件),不保证一直有效。 2 Tomcat 5.5 下载地址:https://www.360docs.net/doc/b417254756.html,/download-55.cgi https://www.360docs.net/doc/b417254756.html,/mirrors/apache/tomcat/tomcat-5/v5.5.23/bin/apache -tomcat-5.5.23.zip 3 JDK 6 下载地址:https://www.360docs.net/doc/b417254756.html,/javase/downloads/index.jsp 4 Struts2.06

下载地址:https://www.360docs.net/doc/b417254756.html,/download.cgi#struts201 二安装: 1 安装JDK6,按照自己喜欢的安装即可。JDK一定要在Eclipse之前安装,因为Eclipse的启动需要JDK。 2 安装Tomcat,我下载的Tomcat是直接解压缩版的,解压缩后拷贝到一个地方就可以了,拷贝后需要注意的是需要把JDK6目录中的 tools.jar拷贝到Tomcat中具体是JDK的lib目录下的tools.jar拷贝到Tomcat下common\lib中。 3 安装Eclipse,重点来了,解压缩下载的lomboz,应该得到一个eclipse目录,把这个目录拷贝到一个比较容易找的地方。 解压缩的时候需要注意,在解压缩过程中可能遇到文件路径过长的问题,我的解决方法是把下载下来的压缩包名重命名为1.zip,也就是尽量缩短文件名长度。然后解压缩的时候直接解压缩到某个硬盘的根目录下,解压缩完后再拷贝到自己想要的地方。 4, 解压缩Struts2.06,把下载下来的Struts2.06压缩包解压缩到一个目录中在他的APPS目录下有几个.war文件。 可以使用WINRAR打开,这里我们仅仅使用winrar把struts2-blank-2.0.6.war文件解压缩到本目录中就可以了。 三、配置 1:配置工作目录 第一次打开Eclipse时会要求你指定你的工作目录,请选择好你的工作目录,今后你的Eclipse的相关项目的配置就放在这个目录里。 2:配置JREs 打开配置对话框

Struts2配置Result

配置Result 一个result代表了一个可能的输出。当一个Action类的方法执行完成时,它返回一个字符串类型的结果码,框架根据这个结果码选择对应的result,向用户输出。 Results配置由两部分组成:一部分是result映射,另一部分是result类型。 1.结果映射 在struts.xml文件中,使用result元素来配置result映射。result元素有两个可选的属性: 在Struts2中允许定义一个默认的Result类型,这是通过result-type元素来定义的。在框架的默认配置文件struts-default.xml中,在struts-default.xml包中有如下的一个配置: result-type元素的default属性指定名为dispatcher的结果类型, dispatcher结果类型使用ServletAPI中的ResultDispatcher将请求导向到目 标资源(通常是JSP页面)。如果在使用result元素配置result映射时,没有使用 type类型,那么框架就将使用默认的dispatcher类型。 由于Struts2中的包是可以继承的,所以我们定义的package只要继承了 struts-default包,因此也继承了默认的结果类型,所以可以省略result元素的 type属性。 如果没有指定result元素的name属性,那么框架将把它命名为”success”。 2.结果类型 在框架调用Action对请求进行处理之后,就要向用户呈现一个结果视图,Struts2支持多种类型的视图,这些视图是由不同的结果类型来管理的。 一个结果类型就是实现了com.opensymphony.xwork2.Result接口的类,在Struts2中定义了多种结果类型,如下表所示:

struts2教程(完全版)

Yaio 4 一、准备工作及实例 4 1.解压struts- 2.1.6-all.zip 4 2.六个基本包 4 3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 5 (5)其它配置文件 5 4.让MyEclipse提示xml信息 5 5.如何使用alt+/提示 5 6.实例 5 7.开启struts2自带的开发模式常量 7 8.vo传参模式 8 9.ModerDriven传参模式(不建议采用) 8 10.为什么要使用struts2代替struts1.x 9

二、struts.xml配置及例程 9 1.配置文件的优先级 9 2.配置形式 9 3.package配置相关 10 4.分工合作include:指定多个配置文件 12 5.tomcat认证访问 12 6.初识拦截器 13 7.Action中的method属性 15 8.使用ForwardAction实现页面屏蔽。 17 8.使用default-Action配置统一访问 17 小结Action 18 9.使用通配符 18 10.使用0配置:ZERO Annotation 19 11.Result配置详解 19 12.异常处理 24 三、在Action获取Scope对象 25 方式一、与Servlet解耦合的非IOC方式 25

方式二、与Servlet解耦合的IOC方式 27 方式三、与Servlet耦合的非IOC方式 27 方式四、与Servlet耦合的IOC方式 28 四、OGNL与ValueStack(VS) 29 1.值栈入门 29 2.OGNL入门 31 3.普通方法访问 31 4.静态方法访问 31 5.默认类Math的访问 32 6.调用普通类的构造方法 32 7.集合对象初步 32 8.集合对象进阶 33 9.N语法top语法 34 10.获取Stack Context中的信息 35 11.总结$ # %的区别 35 12.总结OGNL[重点] 35 五、拦截器 36

Struts2知识点总结

Struts2基础知识 Struts2概述 1.Struts2框架应用javaee三层结构中的web层框架。 2.Struts2框架在struts1和webwork基础之上发展的全新框架。 3.Struts2所解决的问题: 在以往实现一个功能时,都需要写很多的servlet,从而造成后期维护上的不方便。 图解: 4.现在比较稳定的Struts2版本 struts-2.3.24-all.zip 5.web层常见框架 1.struts 2.springMVC Struts2框架入门 1.导入jar包 1.在lib里面有jar包,但不能全部导入,因为里面含有一些spring 包,是不能使用的,导入会导致程序不能运行。 2.到app目录里面复制案例的jar包是最好的方法。 2.创建action 3.配置action类的访问路径

1.创建struts2核心配置文件,该核心配置文件位置和名称是固定的, 位置必须在src下面,名称为struts.xml 。 2.引入dtd约束,可以在案例文件中找到,复制在struts.xml文件中即 可。 3.action的配置 *注意访问路径: http://域名/端口号/项目名/action名.action 注意:.action可以省略,但建议不要省略,为了兼容一些老版本的浏览器。 4.配置Struts2的过滤器,可以在案例中的web.xml文件中找到,复制粘贴 即可。 Struts2执行过程 图解:

Struts2配置

1.是一种常量标签 2.修改Struts2的默认常量值 1.常用方式 在struts.xml中进行配置。 2.其它两种方式 1.在src下面创建struts.properties文件并修改。 2.在web.xml文件中进行修改。 3.Struts2最常用的常量 struts.il8n.encoding=UTF-8,解决表单在通过post方式提交中文时,中文乱码的问题。

Struts2中 struts.xml的Action配置详解

Struts2中struts.xml的Action配置详解 使用package可以将逻辑上相关的一组Action,Result,Interceptor等组件分为一组,Package 有些像对象,可以继承其他的Package,也可以被其他package继承,甚至可以定义抽象的Package。 由于struts.xml文件是自上而下解析的,所以被继承的package要放在继承package的前边。Namespace将action分成逻辑上的不同模块,每一个模块有自己独立的前缀。使用name space可以有效的避免action重名的冲突,例如每一个package都可以有自己独立的Men u和Help action,但是事项方式各有不同。Struts2标签带有namespace选项,可以根据namespace的不同向服务器提交不同的package的action的请求。 “/”表示根namespace,所有直接在应用程序上下文环境下的请求(Context)都在这个pa ckage中查找。 “”表示默认namespace,当所有的namespace中都找不到的时候就在这个namespace中寻找。 例如,有如下配置: CODE: greeting.jsp bar1.jsp

STRUTS2零配置

简述STRUTS2 Convention零配置 从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行配置,甚至不需要使用Annotation进行配置,而是由struts2根据约定自动配置。 如何使用Convention 1. 将struts-Convention-plugin- 2.1.6.jar文件复制到WEB-INF/lib路径下 2. 对于Convention插件而言,它会自动搜索位于action,actions,struts,struts2包下的所 有java类,Convention插件会把如下两种java类当成Action处理: 1)所有实现了com.opensymphony.xwork2.Action的java类 2)所有类名以Action结尾的java类 3. Convention插件还允许设置如下三个常量: 1) struts.Convention.exclude.packges:指定不扫描哪些包下的java类,位于这些包结构下的java类将不会自动映射成Action; 2) struts.convention.package.locators:Convention插件使用该常量指定的包作为搜寻Action 的根包。对于actions.fore.LoginAction类,按约定原本应映射到/fore/login;如果将该常量 设为fore,则该Action将会映射到/login 3) struts.convention.action.packages:Convention插件以该常量指定包作为根包来搜索Action 类。Convention插件除了扫描action,actions,struts,struts2四个包的类以外,还会扫描该常量指定的一个或多个包,Convention会视图从中发现Action类。 注意:struts.convention.package.locators和struts.convention.action.packages两个常量的作用比较微妙,开发者在利用这两个常量时务必小心。 如:下面Action所在包被映射的命名空间如下: com.fun.actions.LoginAction 映射到 / com.fun.actions.myoffice.CarInfoAction 映射到 /myoffice com.fun.struts.myoffice.EntINfoAction 映射到 /myofiice 4. 映射Action的name时,遵循如下两步规则: 1)如果该Action类名包含Action后缀,将该Action类名的Action后缀去掉。否则不做任何处理。 2)将Action类名的驼峰写法(每个单词首字母大写、其他字母小写的写法)转成中画线写法(所有字母小写,单词与单词之间以中画线隔开) 如:LoginAction映射的Acion的name属性为login,GetBooks映射的Action的name的属性为get-books,AddEmployeeAction映射的Action的name属性为add-employee 5. 默认情况下。Convention总会到WEB应用的WEB-INF/content路径下定位物理资源,定位资源 的约定是:actionRUL+resultCODE+suffix。当某个逻辑视图找不到对应的视图资源时,Convention 会自动视图使用ActionURL+suffix作为物理视图资源。 如:actions.fore.LoginAction 返回success字符串时,Convention优先考虑使用 WEB-INF/content/fore目录下的login-success.jsp作为视图资源。如果找不到该文件,login.jsp也可作为对应的视图资源。如果返回input字符串,Convention会将WEB-INF/content/fore里面查找 login-input.jsp

Struts2配置详解2 配置Action

配置Action Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法。 该方法如下: public String execute() throws Exception Struts2并不是要求所有编写的action类都要实现Action接口,也可以直接编写一个普通的Java类作为action,只要实现一个返回类型为String的无参的public方法即可:public String xxx() 在实际开发中,action类很少直接实现Action接口,通常都是从 com.opensymphony.xwork2.ActionSupport类继承,ActionSupport实现了Action接口和其他一些可选的接口,提供了输入验证,错误信息存取,以及国际化的支持,选择从ActionSupport继承,可以简化action的定义。 开发好action之后,好需要对action进行配置,以告诉Struts2框架,针对某个URL的请求应该交由哪个action进行处理。 1.Action映射: action映射是Struts2框架中的基本”工作单元”,action映射就是将一个请求 URL(即action的名字)映射到一个action类,当一个请求匹配某个action的名字 时,框架就使用这个映射来确定如何处理请求。 action元素的完整属性表 例如: /user.jsp 2. 使用method属性 在配置action时,我们可以通过action元素的method属性来指定action调用的方法,所指定的方法,必须遵循与execute方法相同的格式。 在Struts2.xml文件中,我们可以为同一个action类配置不同的别名,并使用 method属性。 在Struts.xml文件中为同一个Action类配置不同的别名 /Methods/list.jsp

struts2中struts.xml配置文件的详解

/error.jsp

详解struts1的配置文件

1.:用来配置数据源,连接数据库。 :具体是数据库连接。 Type:type="org.apache.dbcp.BasicDataSource" Struts中连接数据库的类。 :此标签中配置具体的链接内容。如: 数据库驱动 数据库地址。 数据库登录名。 数据库密码。 自动提交。 最大连接数。 最大等待数。 默认自动提交。 默认为只读。 这里可以不加,不过加了就保证能至少能够返回一条记录。 2.< form-beans> :用来配置多个ActionForm,包含一个或者多个子元素。每个 子元素里都有很多属性。 Classname:制定配置的类。 Name:制定该ActionForm的唯一标识。 Type:制定该ActionForm的路径,带包名。 :指定动态的Form的元。 3.:用于配置异常处理,元素可以包含一个或者多个元 素,用来设置JA V A 异常和异常处理类ExceptionHandler之间 的映射。 className:指定和元素对应的配置类,默认的不用动. Handler:指定异常处理类,默认是ExceptionHandler.key指定在本地资源文件中异 常的消息。 Key,path:指定当前异常发生的时候转发的路径。 Scope:指定ActionMessages实例存放的范围。 Type:指定需要处理异常类的名字,必须的。 Bundle:指定Resource Bundle。 4. < global-forwards>:用来声明全局转发,元素可以有一个或者多个元素组成, 用于把一个逻辑名映射到特定的URL,通过这种方法Action类或者

struts2国际化配置

前提条件:strut2的必须架包已经引入,struts2的配置文件全部配置完成 1.首先创建一个struts.properties在src目录下,服务器启动时候会自动加载该文件,在这个文件中写入struts.custom.i18n.resources=globalMessages,服务器会自动选择前缀为globalMessages资源文件。(或者你在你的struts.xml文件中添加服务器加载struts.xml的时候会加载国际化资源文件); 2.在src目录下创建资源文件英文globalMessages_en.properties 中文globalMessages_zh.properties。globalMessages_en.properties 文件内容为home=home globalMessages_zh.properties文件内容为home=¥u9996¥u9875 3.在页面端获得资源文件信息。<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> My JSP 'test.jsp' starting page struts2的国际化分三种情况 1.前台页面的国际化, 2.Action类中的国际化, 3.配置文件的国际化。 首先指定全局的国际化资源文件: 在配置文件struts.xml中引入 (注意位置)

Struts2零配置实现

Struts2 的零配置实现 Struts 2里面开始使用convention-plugin 实现零配置,将所有的配置文件删除,用约定大于配置的方法来实现URL的跳转。Struts规定了一套默认的约定,只要遵守这些约定,就可以实现无需配置文件的URL跳转。 Struts2里的convention-plugin 插件使用,需要引入convention-plugin 的jar包。 Struts2 的约定: ●Convention怎样寻找Action。 首先,Convention会搜索所有的Action类,搜索方法是从package的根目录开始搜索,搜索所有含有Struts,Struts2,Action,actions的packages,然后开始搜索这些包及其子包下面所有的实现了com.opensymphony.xwork2.Action 的类和名字中含有Action结尾的类,每一个找到的类都会被映射到一个URL。 上面是Convention的默认约定,可以通过配置文件来改变这些约定。在struts.xml中通过配置struts.convention.exclude.packages来告诉Convention忽略扫描某些包,通过配置struts.convention.package.locators 配置搜索包的关键词,通过配置struts.convention.action.packages 配置只搜索哪个包下的类。 例如: ●Convention怎样将Action映射成URL Convention会将找到的Action映射成URL,映射的URL名以Action类的名为基础,如UserAction类将会被映射成user。URL的路径将根据类的包名来转换,如下面的类:https://www.360docs.net/doc/b417254756.html,erAction 类的URL地址为/ https://www.360docs.net/doc/b417254756.html,erAction 的URL将会为/demo/ https://www.360docs.net/doc/b417254756.html,erAction 的URL 将会为/demo/details/ 具体资源的名字将根据Action类名来进行转化,首先取出Action,其次根据驼峰命名法的类名将大写子母小写,并用“-”进行分割。如: UserAction将会被映射为user UserDetailsAction 将会被映射为user-details 上面是Convention的默认约定,可以通过配置文件来改变这些约定。资源文件将会被出去Action,用”-”来分割,可以通过https://www.360docs.net/doc/b417254756.html,.separator来改变分隔符,配置如下: URL的路径也就是命名空间不能在配置文件中修改,但是可以在类中通过annotation进行自定义,加上@namespace(“你的路径”)可以自定义命名空间。 Convention的映射很灵活化,和模板的映射也支持好几种文件,如下表。

Struts2配置文件及详解

Struts2配置文件及详解 分类:非程勿扰—Struts22014-01-0814:23189人阅读评论(1)收藏举报 目录(?)[+] Struts2的作用: Struts2的作用就是使用户的请求与视图分离,当用户发出请求链接的时候,web容器就会解析用户的请求,web容器通过读取web.xml文件,读取到strtus2的filter,然后执行dofilter 方法,去strtus的配置文件里查找相应的action,然后返回数据到配置文件,通过返回结果对比配置文件中的result的配置返回到对应的视图文件。 如果请求中没有指明要访问的action,比如,直接访问的是http://localhost/,strtus配置文件中没有配action=""的result,此时就会交给tomcat来处理,tomcat就会访问web.xml,通过配置的welcome页面。也可以这样定义: [java]view plaincopyprint? 1. 2. 3. 4.index.jsp 5. 6. 设置默认的action,如果要跳转的action没有找到,就使用默认的。 1、引入strtus2jar包。 [java]view plaincopyprint? https://www.360docs.net/doc/b417254756.html,mons-fileupload-1. 2.1.jar https://www.360docs.net/doc/b417254756.html,mons-logging-1.0.4.jar 3.freemarker-2.3.15.jar 4.ognl-2.7.3.jar 5.struts2-core-2.1.8.jar 6.xwork-core-2.1.6.jar 2、修改web.xml,配置拦截器。

相关文档
最新文档