Struts2
文章平均质量分 77
confirmAname
编程爱好者
展开
-
struts2的验证码及利用jquery发送ajax请求并利用json做数据交换
image.jsp :Insert title here$(function(){ $("#valiCode").blur(function(){ $.post( "valid",//请求url {"valiCode":$(this).val()},//请求参数 function(da原创 2013-07-05 18:07:41 · 1922 阅读 · 0 评论 -
Struts2的输入校验(2):重写validate方法(方法二)
基于Struts2校验器的校验可以完成绝大部分功能,但这些校验器都具有固定的校验逻辑,无法满足一些特殊的校验规则。对于一些特殊的校验要求,可能需要在Struts2中进行手动校验,Struts2提供了良好的可扩展性,从而允许通过手动方式完成自定义校验。重写validate方法:我们通过重写ActionSupport的validate方法来进行这种校验。register.jsp :原创 2013-06-29 18:46:13 · 2193 阅读 · 0 评论 -
Struts2的输入校验(1):编写校验规则文件(方法一)
Struts2提供了基于验证框架的输入校验,在这种校验方式下,所有的输入校验只需要编写简单的配置文件,Struts2的验证框架将会负责进行校验。register.jsp :Insert title here上面页面定义了三个表单域,分别对应name,pass和age3个请求参数,假设本应用要求这3个请求参数满足如下规则:① name不能为空原创 2013-06-29 16:43:53 · 892 阅读 · 0 评论 -
struts2的文件上传(2):手动实现上传文件类型的过滤
大部分时候,Web应用不允许浏览者自由上传文件,尤其不能允许上传可执行性文件------因为可能是病毒程序。通常,我们可以允许浏览者上传图片,压缩文件等;除此之外,还必须对浏览者上传的文件大小进行设置。因此必须在文件上传中进行文件过滤。本篇文章只讨论过滤文件类型。从处理表单文件域的Action中可以看出,它里面有两个方法分别用于获取文件类型和大小。为了实现文件过滤,可以通过判断这两个方法的返回原创 2013-07-01 00:34:18 · 990 阅读 · 0 评论 -
struts2的文件上传(1):每次上传多个文件
fileupload.jsp :Insert title herestruts.xml :<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/s原创 2013-06-30 22:33:22 · 668 阅读 · 0 评论 -
Struts2的输入校验(3):重写validateXxx方法(方法二)
我们已经知道,Struts2的Action类里可以包含多个处理逻辑,不同的处理逻辑对应不同的方法。即Struts2的Action类里定义了几个类似于execute的方法,只是方法名不是execute。如果我们的输入校验只想校验某个处理逻辑,也就是仅仅校验某个处理方法,则重写validate方法显然不合适,因为如果重写validate的话,那么无论调用Action的哪个方法,都会触发校验,这显然原创 2013-06-29 22:06:38 · 1109 阅读 · 0 评论 -
struts2的文件上传(0):struts2的文件上传并且上传目录可动态配置
为了能上传文件,我们必须将表单的method设置为post,将enctype设置为multipart/form-data,只有在这种情况下,浏览器才会把用户选择的文件的二进制数据发送给服务器。Struts2并未提供自己的请求解析器,也就是说,Struts2不会自己去处理multipart/form-data的请求数据,它需要调用其他上传框架来解析二进制请求数据。但Struts2在原有的上传解析原创 2013-06-30 21:37:29 · 708 阅读 · 0 评论 -
Struts2的输入校验(0):输入校验简介
输入校验是所有Web应用必须处理的问题,因为是Web应用的开放性,网络上所有的浏览器都可以自由使用该应用,因此该应用通过输入页面收集的数据是非常复杂的,不仅会包含正常用户的误输入,还可能包含恶意用户的恶意输入。一个健壮的应用系统必须将这些非法输入阻止在应用之外,防止这些非法输入进入系统,这样才可以保证系统不受影响。异常的输入,轻则导致系统非正常中断,重则导致系统奔溃。应用程序必须能正常处理表现原创 2013-06-29 14:12:51 · 830 阅读 · 0 评论 -
Struts2的类型转换(1):基于ognl的类型转换
借助于ognl表达式的支持,Struts2允许以一种简单方式将请求参数转换成复合类型。LoginAction.java :public class LoginAction extends ActionSupport{ private Person person; public Person getPerson() { return person; } public vo原创 2013-06-28 18:49:32 · 636 阅读 · 0 评论 -
Struts2标签库(5):<s:bean/>,<s:push/>
start.jsp :Insert title here 标签用法演示struts.xml :<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/st原创 2013-06-25 17:58:00 · 1373 阅读 · 0 评论 -
struts2的文件下载(1):下载前的授权控制
index.jsp :Insert title here图片文件下载struts.xml :<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/st原创 2013-07-01 22:28:55 · 829 阅读 · 0 评论 -
struts2的文件下载(0):文件下载
Struts2提供了stream结果类型,该结果类型可支持文件下载功能。指定stream结果类型时,需要指定一个inputName参数,该参数指定了一个输入流,这个输入流就是被下载文件的入口。通过Struts2的文件下载支持,允许系统控制浏览者下载文件的权限,包括实现文件名为非西欧字符的文件下载。index.jsp :Insert title here图片文件下载原创 2013-07-01 22:03:30 · 773 阅读 · 0 评论 -
struts2的拦截器(7):defaultStack
在struts2-core-2.1.8.1.jar下的struts-default.xml中:原创 2013-07-05 00:31:32 · 1225 阅读 · 0 评论 -
struts2的Result类型
在struts2-core-2.1.8.1.jar下的struts-default.xml中:原创 2013-07-05 02:16:19 · 637 阅读 · 0 评论 -
struts2的拦截器(6):拦截器的执行顺序
index.jsp :Insert title herewelcome.jsp :Insert title here<%Object obj=session.getAttribute("name");if(obj==null){ response.sendRedirect("index.jsp");}%>welcome ${name}.原创 2013-07-04 02:09:08 · 867 阅读 · 0 评论 -
struts2的拦截器(3):通过实现Interceptor接口定义自己的拦截器
虽然struts2框架提供了许多内建拦截器,这些内建拦截器实现了struts2的大部分功能,因此,大部分Web应用的通用功能,都可以通过直接使用这些拦截器来完成。但还有一些系统逻辑相关的通用功能,可以通过自定义拦截器来实现。struts2自定义拦截器有如下三种方法:① 实现com.opensymphony.xwork2.interceptor.Interceptor接口,实现init,dest原创 2013-07-03 13:44:42 · 1800 阅读 · 0 评论 -
struts2的拦截器(5):继承MethodFilterInterceptor抽象类实现拦截方法的拦截器
在默认情况下,如果我们为某个Action定义了拦截器,则这个拦截器会拦截该Action内的所有方法。但在某些情况下,我们不想拦截所有的方法,我们只需要拦截某些特定方法,此时就需要使用struts2拦截器的方法过滤特性。为了实现方法过滤的特性,struts2提供了一个MethodFilterInterceptor抽象类,它是AbstractInterceptor的子类,如果用户需要自定义的拦截器原创 2013-07-03 20:44:09 · 1805 阅读 · 0 评论 -
struts2的拦截器(4):通过继承AbstractInterceptor抽象类定义自己的拦截器
抽象类AbstractInterceptor实现了Interceptor接口,提供了init和destroy方法的空实现。如果我们的拦截器不需要打开资源,则可以无需实现这两个方法。可见通过继承AbstractInterceptor抽象类来实现自定义拦截器会更简单。将上篇文章中的SimpleInterceptor.java 改为如下实现,其余所有代码一律不变:public class Sim原创 2013-07-03 14:02:57 · 4559 阅读 · 0 评论 -
struts2的拦截器(2):配置默认拦截器
当配置一个包时,可以为其指定默认拦截器。一旦为某个包指定了默认的拦截器,如果该包中的Action没有显式指定拦截器,则默认的拦截器将会起作用。需要注意的是:一旦我们为该包中的Action显式应用了某个拦截器,则默认的拦截器就不会起作用,如果该Action需要使用该默认拦截器,必须手动配置该拦截器的引用。配置默认拦截器使用元素,该元素作为元素的子元素使用,为该包下的所有Action配置默认的拦截原创 2013-07-03 01:50:19 · 1714 阅读 · 0 评论 -
struts2的拦截器(1):拦截器的配置和使用
拦截器的配置:在struts.xml中配置拦截器使用元素:如果还需要在配置拦截器时传入参数,则在元素中使用子元素: 参数值除此之外,还可以把多个拦截器连在一起组成拦截器栈,此时使用元素,里面使用元素: 系统为拦截器指定参数有如下两个时机:① 定义拦截器时指定参数值:这种参数值将作为拦截器参数的默认参数值。② 使用拦截器时指定参数值:在配置原创 2013-07-03 01:17:56 · 963 阅读 · 0 评论 -
struts2的拦截器(0):入门简介
拦截器体系是struts2框架的重要组成部分,大量的内建拦截器完成了该框架的大部分操作。比如params拦截器负责解析HTTP请求的参数,并设置Action的属性;servletConfig拦截器直接将HttpServletRequest实例和HttpServletResponse实例传给Action;fileUpload拦截器则负责解析请求参数中的文件域,并将一个文件域设置成Action的三个属原创 2013-07-03 00:38:13 · 701 阅读 · 0 评论 -
struts2的文件上传(3):利用拦截器实现文件过滤
手动实现文件过滤的思路简单,但是需要编写大量的过滤代码,不利于程序的高层次解构,而且开发复杂。Struts2提供了一个文件上传的拦截器fileUpload,通过配置该拦截器可以更轻松地实现文件过滤。配置fileUpload拦截器时,可以为其指定两个参数:① allowedTypes : 该参数指定允许上传的文件类型,多个文件类型之间以英文逗号隔开。② maximumSize :原创 2013-07-01 16:43:41 · 1306 阅读 · 0 评论 -
Struts2标签库(6):<s:action/>
start.jsp :Insert title heresample01sample02struts.xml :<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.or原创 2013-06-25 18:19:18 · 626 阅读 · 0 评论 -
Struts2标签库(10):<s:select/>
start.jsp :Insert title herestruts.xml :<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd原创 2013-06-26 19:59:24 · 986 阅读 · 0 评论 -
Struts2(5):Action中直接访问Servlet API---实现XxxAware接口
虽然Struts2提供了ActionContext来访问Servlet API,但这种访问毕竟不是直接获得Servlet API的实例。为了在Action中直接访问Servlet API,Struts2还提供了如下几个接口。① ServletContextAware : 实现该接口的Action可以直接访问Web应用的ServletContext实例。实现该接口需要实现方法setServlet原创 2013-06-23 02:34:49 · 1033 阅读 · 0 评论 -
Struts2(7):struts.xml中的<package>元素
实现了Action处理类之后,就可以在struts.xml文件中配置该Action了。配置Action就是让Struts2知道哪个Action处理哪个请求,也就是完成用户请求和Action之间的对应关系。我们可以认为,Action是Struts2的基本“程序单位”。Struts2使用来组织Action,因此将Action定义放在包定义下完成,定义Action使用元素完成。Struts2框架原创 2013-06-23 16:10:42 · 1026 阅读 · 0 评论 -
Struts2(4):Action访问Servlet API---ActionContext
Struts2的Action没有与任何Servlet API耦合,这是Struts2的一个设计良好之处,由于Action类不再与Servlet API耦合,从而可以更轻松地测试该Action。但对于Web应用的控制器而言,不访问Servlet API几乎是不可能的,例如跟踪HTTP Session。Struts2框架提供了一种更轻松的方式来访问Servlet API。Web应用通常需要访问的S原创 2013-06-23 01:35:12 · 1069 阅读 · 0 评论 -
Struts2(0):Struts2框架入门
Model 1和Model 2:在Model 1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收并处理客户端请求,对请求处理后直接作出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。Model 1模式的实现比较简单,适用于快速开发小规模项目。但从工程化的角度看,它的局限性非常明显:JSP页面同时身兼视图和控制器两种角色,将控制逻辑和表现逻辑混杂在一起,导致代原创 2013-06-21 22:47:21 · 605 阅读 · 0 评论 -
Struts2(11):配置默认Action
Struts2还支持配置默认Action,当用户请求找不到对应的Action时,系统默认的Action即将处理用户请求。配置默认Action通过元素完成,一般配置在struts.xml文件中元素下。login_register.jsp :Insert title herefunction register(){var targetForm=document.fo原创 2013-06-23 19:55:58 · 1665 阅读 · 0 评论 -
Struts2(10):利用通配符实现DMI
查看上篇文章的struts.xml,文件中的两个元素定义绝大部分相同,可见这种定义相当冗余。为了解决这个问题,Struts2还有另一种形式的DMI:使用通配符的方式。在配置元素时,允许在指定name属性时使用模式字符串(即使用“*”代表一个或多个任意字符),接下来就可以在class属性、method属性及子元素中使用{N}的形式来代表前面第N个星号(*)所匹配的字符串。login_regi原创 2013-06-23 19:31:25 · 1033 阅读 · 0 评论 -
Struts2(3):Action接口和ActionSupport基类
为了让用户开发的Action类更规范,Struts2提供了一个Action接口,这个接口定义了Struts2的Action处理类应该实现的规范。下面是Action接口的源码:public interface Action { public static final String ERROR="error"; public static final String INPU原创 2013-06-23 00:21:17 · 2298 阅读 · 0 评论 -
Struts2(2):Struts2中配置常量的3种方式及包含其他配置文件
Struts2中配置常量总共有3种方式:① 通过struts.properties文件。② 通过struts.xml配置文件。③ 通过Web应用的web.xml文件。Struts2的所有配置文件,包括struts-default.xml,struts-plugin.xml,甚至用户自定义的、只要能被Struts2加载的配置文件,都可以使用常量配置的方式来配置Struts2常原创 2013-06-22 23:27:30 · 2307 阅读 · 0 评论 -
Struts2(1):Struts2的配置文件
今天,我们先不考虑插件包中带的配置文件,这个文件在后面会讨论。Struts2最常用的配置文件有4个:Struts2的配置文件文件名所属文件位置文件作用struts-default.xml框架自带struts2-core-2.1.8.1.jar框架自带的结果类型定义、拦截器定义、拦截器引用定义struts.xml开发者创原创 2013-06-21 23:10:33 · 805 阅读 · 0 评论 -
Struts2(8):动态方法调用
Struts1提供了DispatchAction,从而允许一个Action内包含多个控制处理逻辑。例如对于同一个表单,当用户通过不同的提交按钮来提交表单时,系统需要使用Action的不同方法来处理用户请求,这就需要让同一个Action里包含多个控制处理逻辑。Struts2同样提供了这种包含多个处理逻辑的Action,这就是动态方法调用(DMI,Dynamic Method Invocation原创 2013-06-23 17:10:20 · 558 阅读 · 0 评论 -
Struts2(9):为<action>指定method属性
对于一个表单有多个提交按钮并且分别对应不同的处理逻辑的情形,Struts2还提供了一种处理方法,即将一个Action处理类定义成多个逻辑Action。如果在配置元素时,为它指定method属性,则可以让Action调用指定方法,而不是默认的execute方法来处理用户请求。login_register.jsp:Insert title herefunction reg原创 2013-06-23 18:03:19 · 1200 阅读 · 0 评论 -
Struts2标签库(9):<s:checkboxlist/>,<s:radio/>
start.jsp :Insert title here struts.xml :<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dt原创 2013-06-26 19:47:03 · 2024 阅读 · 0 评论 -
Struts2标签库(7):<s:set/>
start.jsp :Insert title here标签用法struts.xml :<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts原创 2013-06-25 18:35:05 · 956 阅读 · 0 评论 -
Struts2标签库(11):<s:optgroup/>
start.jsp :Insert title herestruts.xml :<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd原创 2013-06-26 20:21:09 · 1430 阅读 · 0 评论 -
Struts2标签库(4):<s:iterator/>
start.jsp :Insert title here标签用法演示struts.xml :<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/stru原创 2013-06-25 15:54:52 · 703 阅读 · 0 评论 -
Struts2标签库(8):<s:form/>,<s:textfield/>,<s:password/>,<s:radio/>,<s:checkbox/>
start.jsp :Insert title here标签用法struts.xml :<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts原创 2013-06-26 00:43:26 · 2291 阅读 · 0 评论