
Struts2
文章平均质量分 78
xh16319
这个作者很懒,什么都没留下…
展开
-
<Action>中<result>的各种转发类型
标签中的type属性决定如何处理客户端的请求:result配置类似于struts1中的forward,但struts2中提供了多种结果类型,常用的类型有: dispatcher(默认值)、 redirect 、 redirectAction 、 plainText。 (1)dispatcher 转发 (地址栏不会变) (2)redirect 重定向,原创 2012-10-04 23:19:52 · 1589 阅读 · 0 评论 -
单文件上传和多文件上传
1. 单文件上传:struts-fileupload.xml <!-- 限制了一次上传文件总数最大为10M,默认为2M 当单个文件或文件数组和大小大于2Mb时,会抛出org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was reje原创 2012-10-06 20:16:25 · 2632 阅读 · 0 评论 -
Action中获取Servlet的其他对象-request.response,ActionMapping,context
Struts2的Action中也可以获取Servlet的其他对象,如request,response,ActionMapping,context等,Struts提供了两种方式: 方法一,通过ServletActionContext.类直接获取:package edu.action;import java.io.IOException;import javax.servlet.原创 2012-10-06 14:48:56 · 2125 阅读 · 0 评论 -
Struts1.x和Struts2在处理请求参数上区别
(1)Struts1.x 对于客户端的请求参数,如果上配有name属性,且对应有formbean,那么struts1.x会按照请求参数名与formbean的成员变量名匹配,相同的则调用其setter方法,为其赋值,没有匹配的,则可以通过request.getParameter("paramName")取得参数值。注意,填充formbean时,struts是按照formbean的成员变量名与请求参数原创 2012-10-05 23:20:51 · 3873 阅读 · 0 评论 -
关于<action><result><package>的name和namespace属性同名时struts2的处理
1.对于同一个下两个name属性相同的,struts2是这样处理的,后面的将覆盖前面的2.对于同一个下两个name属性相同的,struts2是这样处理的,后面的将覆盖前面的3.配置文件中两个同name属性的(无论是否在同一xml文件中),struts2是这样处理的,启动tomcat时,会报错。4.配置文件中两个不同name属性,但namespace属性相同的,struts是这样处理的,原创 2012-10-05 11:14:35 · 5264 阅读 · 1 评论 -
常用的常量介绍<constant>
细说常量定义 常量可以在struts.xml或struts.properties中配置,建议在struts.xml中配置,两种配置方式如下: (1)在struts.xml文件中配置常量 (2)在struts.properties中配置常量 struts.action.extension=do 因为常量可原创 2012-10-05 00:36:55 · 1955 阅读 · 0 评论 -
<Action>和<result>配置中的各项默认值
中属性: name:必须有 class:如果没指定此属性或此属性值为""空串:则缺省为com.opensymphony.xwork2.ActionSupport ActionSupport.java中: public class ActionSupport implements Action,...{ pub原创 2012-10-04 23:24:59 · 2889 阅读 · 0 评论 -
在result中还可以使用${属性名}表达式访问action中的属性
总结: (1)对于Action中的属性,可以通过两种方式设值:一是在Action中直接赋值,二是在struts2的配置文件中为Action的属性注入值。如: zhangsan user /page/showParam.jsp?userName=${userName} 在调用Action的att原创 2012-10-04 21:54:21 · 4060 阅读 · 1 评论 -
为Action的属性注入值两种方式,jsp页面访问该属性值
(1) Struts2为Action中的属性提供了依赖注入功能,在struts2的配置文件中,我们可以很方便地为Action中的属性注入值。注意:属性必须提供setter方法。 在配置文件中注入依赖属性适用于少数不变写死在程序中的属性,如某些交给客户后会改变的属性。 /WEB-INF/struts.xml /page/原创 2012-10-04 21:25:34 · 4602 阅读 · 0 评论 -
Action名称的搜索顺序
1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action2.首先寻找namespace为/path1/path2/path3的package,如果不存在这个package则执行步骤3;如果存在这个package,则在这个package中寻找名字为test的action,当在该package下寻找不到act原创 2012-10-04 20:38:53 · 624 阅读 · 0 评论 -
Action中设置和读取作用域属性
struts2为了降低组件之间的耦合程度,在Action中并没有嵌入Servlet相关的对象,所以要想获取Servlet相关的对象,Struts分别提供了几种方式 (1) 对于Servlet的作用域属性设置和取值,struts提供了两种方式,一种是专门得到作用域Map和请求参数Map,另一种是先得到request对象,然后在通过request得到其他对象。 例: struts-sc原创 2012-10-06 14:14:39 · 3830 阅读 · 0 评论 -
动态方法调用和使用通配符实现类似struts1.x的dispatchAction功能
Struts1中通过继承DispatchAction类和struts-config.xml中配置parameter参数调用Action中的任意方法,那么Struts2也提供了类似的功能,主要有两种方式: 1. 动态方法调用 如果Action中存在多个方法时,我们可以使用"namespace+action名+!+方法名"调用指定方法。如http://localhost:8080/原创 2012-10-05 21:33:04 · 1900 阅读 · 0 评论 -
实现权限控制的几种方式
方式一:struts1.x 步骤一:定义。自定义一个类继承RequestProcessor类,然后重写父类的public void process(HttpServletRequest request, HttpServletResponse response)方法,此类和ActionServlet的作用一样的,是处理请求的控制器组件,其是被ActionServlet调用处理请求的。即在原创 2012-10-07 00:15:37 · 4797 阅读 · 0 评论 -
Struts2实现权限控制
Struts2的核心功能是通过一个个interceptor来实现的,那么用户可以自定义一个interceptor来实现权限控制功能。 步骤一:自定义一个类,该类实现Interceptor接口,重写其intercept()方法。如:package edu.interceptor;import com.opensymphony.xwork2.ActionContext;import原创 2012-10-07 02:15:55 · 2079 阅读 · 1 评论 -
输入校验--基于XML配置方式实现
1. 基于XML配置方式实现对action的所有方法进行输入校验 使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validation.xml,其中ActionClassName为action的简单类名,-validation为固定写法。如原创 2012-10-07 19:43:35 · 4151 阅读 · 0 评论 -
Struts2系统提供的基于XML的校验器--default.xml
在xwork-2.x.jar中的com.opensymphony.xwork2.validator.validators下的default.xml中定义了这些系统校验器:<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator Definition 1.0//EN" "http://strut原创 2012-10-07 20:54:57 · 1563 阅读 · 0 评论 -
OGNL表达式语言
1.OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。 Struts 2框架使用OGNL作为默认的表达式语言。 2.相对EL表达式,它提供了平时我们需要的一些功能,如: (1)支持对象方法调用,如xxx.sayHello(); (2)支持类静态方法调用和值访问,表达式的格式为@[类全名(包括包原创 2012-10-09 15:38:37 · 946 阅读 · 0 评论 -
Struts2的全局/包/Action范围国际化应用
准备资源文件,资源文件的命名格式如下:baseName_language_country.propertiesbaseName_language.propertiesbaseName.properties其中baseName是资源文件的基本名,我们可以自定义,但language和country必须是java支持的语言和国家。如:中国大陆: baseName_zh_CN.prop原创 2012-10-08 17:52:24 · 3452 阅读 · 0 评论 -
输入校验--手工编写代码实现
在struts2中,我们可以实现对action的所有方法调用之前对其属性进行校验或者对action的指定方法进行校验。 对于输入校验struts2提供了两种实现方法: (1) 采用手工编写代码实现。 (2) 基于XML配置方式实现。1.手工编写代码实现对action中所有方法输入校验 通过继承ActionSupport重写validate() 方法实现,原创 2012-10-07 19:40:47 · 1347 阅读 · 0 评论 -
Struts2常用标签
property标签property标签用于输出指定值:default:可选属性,如果需要输出的属性值为null,则显示该属性指定的值escape:可选属性,指定是否格式化HTML代码。value:可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输出ValueStack栈顶的值。id:可选属性,指定该元素的标识iterator标签iterator标签用于对原创 2012-10-09 15:20:41 · 633 阅读 · 0 评论 -
Struts2表单标签
表单标签_checkboxlist复选框如果集合为list生成如下html代码:Java.NetRoRPHP如果集合为MAP生成如下html代码:瑜珈用品户外用品球类自行车如果集合里存放的是javabean <% Person person1 = new Person(1,"第一个"); Person person2 = new Person(2,原创 2012-10-09 15:09:04 · 746 阅读 · 0 评论 -
多个Action及多个package共享一个视图--全局result配置
当多个action中都使用到了相同视图,这时我们应该把result定义为全局视图。struts1中提供了全局forward,struts2中也提供了相似功能: /message.jsp 这时,package1包下的action1和action2对应的Action类都可以访问message试图。但是这里的中的只能在同一个原创 2012-10-04 23:02:37 · 2556 阅读 · 0 评论