Struts2
jazwoo
这个作者很懒,什么都没留下…
展开
-
Struts2中的FilterDispatcher和StrutsPrepareAndExecuteFilter的区别
FilterDispatcher是早期struts2的过滤器,后期的都用StrutsPrepareAndExecuteFilter了,如 2.1.6、2.1.8。StrutsPrepareAndExecuteFilter名字已经很能说明问题了,prepare与execute,前者表示准备,可以说是指filter中的init方法,即配制的导入;后者表示进行过滤,指doFilter方法,即将reque转载 2013-03-17 20:30:13 · 1697 阅读 · 0 评论 -
struts2 中配置result 中chain、redirect、redirectaction的区别
一。Chain Result:这个result调用另外的一个action,连接自己的拦截器栈和result。actionName (默认) - 被调用的action的名字namespace - 被调用的action的名称空间. 如果名称空间为空,这默认为当前名称空间method - 用于指定目标action的另一个方法被调用. 如果空,默认为excute方法Re原创 2012-12-13 19:11:26 · 1008 阅读 · 0 评论 -
struts2+ajax+json
在Struts2中使用JSON可以更容易实现数据的异步传输。 先做好准备工作: 1.Struts2相关lib, 注意将struts2 lib下面的以json开头的包也加入到工程。 2.JSON Plugin,它可以将Struts2 Action中的结果直接返回为JSON。下载地址:http://jsonplugin.googlecode.com原创 2012-12-13 19:44:04 · 616 阅读 · 0 评论 -
Struts2 Action的单元测试
对Struts2进行单元测试,以struts 2.2.1.1为例 ,可以使用struts2发行包中的struts2-junit-plugin-2.2.1.1.jar,它里面提供了两个类StrutsTestCase、StrutsSpringTestCase,分别提供对纯struts应用和struts+spring整合时的单元测试支持。下面分别说明。1.StrutsTestCase原创 2012-12-06 23:19:12 · 1008 阅读 · 0 评论 -
struts2 整合 SiteMesh
1,定义装饰页面导入标签更复杂的页面还需要在页面中适当的位置添加如下标签。代表被装饰页面的title部分。可以看出装饰页面是整个应用的母板页,用上述三个标签定义了被装饰页面的各个部分的位置。2,我们将装饰页面统一放到decorators下,在WEB-INF下添加配置decorators.xml,内容如下 *原创 2012-12-02 13:07:30 · 583 阅读 · 0 评论 -
Struts2的国际化,中英文切换
几年之前,应用程序开发者能够考虑到仅仅支持他们本国的只使用一种语言(或者有时候是两种)和通常只有一种数量表现方式(例如日期、数字、货币值)的应用。然而,基于web技术的应用程序的爆炸性增长,以及将这些应用程序部署在Internet或其它被广泛访问的网络之上,已经在很多情况下使得国家的边界淡化到不可见。这种情况转变成为一种对于应用程序支持国际化(internationalization,经常被称做"原创 2012-06-26 10:57:52 · 5195 阅读 · 1 评论 -
Struts2 过滤器与拦截器
过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符 拦截器,是在面向切转载 2012-12-01 16:51:49 · 496 阅读 · 0 评论 -
struts2的namespace问题
namespace决定了action的访问路径,默认为"",可以接受所有路径的action namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,/xxx/index.action,或者/xxx/yyy/index.action namespace最好也用模块来进行命名struts.xml原创 2012-12-02 13:35:27 · 654 阅读 · 0 评论 -
Struts2拦截器实现日志管理系统
最近一个项目客户要求能够监控用户对系统的详细操作步骤,比如某人在某时间删除了某个模块的某条数据,经过一番斟酌,决定用struts2的拦截器功能实现日志管理系统,因为系统是旧系统(SSH架构)了,用struts2就可以不用修改系统的原有的类或者方法,而且可以精确到用户的具体操作,并且所有的日志管理代码直接写在拦截器里即可。代码如下: 代码只是当时写的一个简单测试例子,可以进行优化,将原创 2012-12-01 18:56:10 · 994 阅读 · 0 评论 -
struts2框架安全缺陷
摘要:本文介绍了java开发流行框架struts2以及webwork的一些安全缺陷,并举例说明框架本身以及开发人员使用框架时,所产生的种种安全问题,以及作者挖掘框架安全漏洞的一些心得体会。推荐以下人群阅读:了解java开发了解框架开发了解web application安全“网络安全爱好者”正文:当前java开发网站,通常不会是纯JSP转载 2012-11-09 21:00:59 · 1025 阅读 · 0 评论 -
Struts2 OGNL
浅析值栈ValueStack对象相当于一个栈,它贯穿整个Action的生命周期,每个Action类的对象实例都会拥有一个ValueStack对象当Struts2接收到一个*.action请求后,并不是直接调用Action方法,而是先将Action类的相应属性放到ValueStack对象的顶层节点值栈也位于内存中,它也是和parameters、request、session、applic原创 2012-06-26 10:15:40 · 1342 阅读 · 0 评论 -
servlet、struts2、springmvc中实现带进度条的文件上传
实现带进度条的文件上传的基本原理是这样的:前台异步提交文件上传请求,然后每隔一段时间向服务器发送请求查询文件上传进度。后台处理程序解析文件上传请求,并且每隔一段时间将上传进度保存在HttpSession中。(由于HttpRequest是无状态的,因此只能保存在HttpSession中)commons-fileupload包中的ServletFileUpload类可以注册一个原创 2012-12-14 23:05:07 · 1231 阅读 · 0 评论 -
struts中使用UrlRewriteFilter
配置struts中要加上REQUEST FORWARD INCLUDE表示先经过UrlRewriteFilter过滤之后,传到struts<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i原创 2013-03-16 19:21:26 · 944 阅读 · 0 评论 -
struts中使用json,报错There is no result type defined for type 'json' mapped with name 'success'.
报错:There is no result type defined for type 'json' mapped with name 'success'. Did you mean 'json'? - result - file:/D:/apache-tomcat-6.0.30/webapps/Bijian/WEB-INF/classes/strutsXml/LabelAction.xml:1原创 2013-03-04 16:19:39 · 2835 阅读 · 0 评论 -
struts地址栏中重写Url
注意使用的struts版本一定是2.0.6首先,这要用到两个软件包,一个是SmartUrls(Struts2的插件,下载地址:http://code.google.com/p/smarturls-s2/downloads/list),还有就是urlrewritefilter(下载地址:http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.原创 2013-03-02 23:08:15 · 1325 阅读 · 0 评论 -
struts2 jsp页面向action提交list对象
<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> "> 修改前效果].num" value="${li原创 2013-01-16 23:13:55 · 891 阅读 · 0 评论 -
Struts2 自定义Result类型
直接扩展struts2的结果集StrutsResultSupport package commons.struts2;import java.io.PrintWriter;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.dispatcher.StrutsResultSupport;imp原创 2012-12-15 19:46:51 · 962 阅读 · 0 评论 -
struts2 角色权限 filter(过滤器)和interceptor(拦截器)
之前的Struts2项目通过再Sitemesh的母版页中使用Struts的if标签进行了session判断,使得未登录的用户不能看到页面,但是这 种现仅仅在view层进行,如果未登录用户直接在地址栏输入登录用户才能访问的地址,那么相应的action还是会执行,仅仅是不让用户看到罢了。这样显 然是不好的,所以研究了一下Struts2的权限验证。Here i quote权限最核心的是业务逻原创 2012-12-15 20:09:26 · 5935 阅读 · 1 评论 -
struts2 使用sitemesh web.xml配置ActionContextCleanUp的作用
延长action中属性的生命周期,包括自定义属性,以便在jsp页面中进行访问,让actionContextcleanup过滤器来清除属性,不让action自己清除。 为了使用WebWork,我们只需要在web.xml配置FilterDispatcher一个过滤器即可,阅读一下FilterDispatcher的JavaDoc和源码,我们可以看到它调用了: finally {转载 2012-12-16 10:40:44 · 695 阅读 · 0 评论 -
ActionContext和ServletActionContext小结
1. ActionContext在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest),响应(HttpServletResponse)操作. 我们需要在Action中取得request请求原创 2012-12-15 19:18:11 · 480 阅读 · 0 评论 -
struts2文件上传的采用的三种方式解析
文件上传几乎是每个项目实现的一个必须的模块。上传就是将信息从个人计算机(本地计算机)传递到中央计算机(远程计算机)系统上,让网络上的人都能看到。将制作好的网页、文字、图片等发布到互联网上去,以便让其他人浏览、欣赏。这一过程称为上传。JAVA实现文件上传的几个组件:1 SmartUpload 用的最多的一个组件,已经不再更新了,可以实现上传和下载2 FileUpload Apache原创 2012-12-14 22:47:29 · 1033 阅读 · 0 评论 -
出现Form action defaulting to 'action' attribute's literal value 警告的原因
在使用标记时,发现控制台总是输出警告信息,警告信息内容如下:警告: No configuration found for the specified action: 'ShowMessage' in namespace: ''. Form action defaulting to 'action' attribute's literal value.2008-9-6 11:35:47转载 2012-09-26 15:32:02 · 3428 阅读 · 0 评论 -
Struts2 ognl中的#、%和$
1.#符号的用途一般有三种。 1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute(”原创 2012-09-26 11:48:19 · 1054 阅读 · 0 评论 -
struts2 解决浏览器post提交值Actionz还能获取第一个参数的问题
使用form表单post数据到action,public class UserAction extends ActionSupport implements SessionAware{ private Map session; private User user; public String login(){ String result; System.ou原创 2012-09-22 16:49:17 · 610 阅读 · 0 评论 -
struts2获取request,session,application4种方式
第一种,依赖容器获取: private Map request; private Map session; private Map application; public ActionTest() { request=(Map)ActionCo转载 2012-06-26 09:40:47 · 454 阅读 · 0 评论 -
Struts2 配置result
/hello/Result.jsp //等于/hello/Result.jsp/hello/Error.jsp /hello/Input.jsp 上述代码的含义为,名字为Hello的Action有三个返回结果,并且都是dispatcher类型(默认类型),这三个返回值的名字分别为success(默认值),error,input,对应的页面的路径分别为/he原创 2012-06-26 09:29:15 · 446 阅读 · 0 评论 -
Struts2 Struts.properties文件
是Struts2的配置文件,默认叫default.properties文件。它配置struts的默认配置,例如:struts2的默认配置 为action就是在该文件中定义。这个文件提供了一种更改框架默认行为方式的机制。在一般情况下,如果不是打算让调试更加方便的话,你根本无须更改这个文件。在“struts.properties”文件中定义的属性都可以在“web.xml”文件的“init-p转载 2012-06-26 09:15:55 · 565 阅读 · 0 评论 -
struts2 配置Action
Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法。该方法如下: public String execute() throws ExceptionStruts2并不是要求所有编写的act转载 2012-06-26 09:19:45 · 410 阅读 · 0 评论 -
Struts2拦截器(Interceptor) PreResultListener
1. 理解拦截器1.1. 什么是拦截器:拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。在Webwork的中文文档的解释为——拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在原创 2012-06-26 16:04:56 · 992 阅读 · 0 评论 -
Struts2之文件上传与下载
一、Struts2文件上传 Struts2的文件上传实现非常简单,只需要简单几步就可完成;注意:(1)文件上传的struts2标签为:(2)文件上传的前提是表单属性method="post" enctype="multipart/form-data";(3)web应用中必须包含common-fileupload.jar和common-io.jar,因转载 2012-06-26 22:27:51 · 517 阅读 · 0 评论 -
Struts2 输入校验
一、Struts2输入校验介绍 Struts2的输入校验和类型转换都是对请求参数进行处理。输入校验顾名思义就是请求参数是否能够满足一定的要求; 客户端校验&服务器端校验客户端校验是指在浏览器这端通过Javascript进行初步校验,为了减轻服务器端的负载;服务器端校验是校验数据的最后一道防线; 在Struts2中,数据校验不需转载 2012-06-26 22:17:44 · 700 阅读 · 0 评论 -
Struts2 类型转换
一、Struts2 类型转换介绍 类型转换:解析HTTP请求参数,将Http请求参数赋值给Action的属性;比如: [html] view plaincopys:form action="valid" > s:textfield label="用户名" name="name">s:textfield> s转载 2012-06-26 16:50:13 · 607 阅读 · 0 评论 -
strut2 接受请求和表单类型 ModelDriven
Action为了执行操作,并为数据库持久化对象提供数据,就必须要访问请求字符串和表单中的数据。Struts2采用了JavaBean的风格——要访问数据的话,就给字段提供一个getter和setter,要访问请求字符串和表单也是一样的道理。每一个请求字符串和表单的值都是一个简单的名/值对,所以要设定一个特定名称的值的话,就要为它提供一个setter。比如,如果一个JSP调用了“/home.act转载 2012-06-26 09:36:11 · 630 阅读 · 0 评论 -
Struts2 开发流程
一、确定Struts在开发中的地位 Struts其实就是一个Servlet; 根据传统MVC开发模式,如图所示: Servlet担任了Controller的职责, 而Struts框架加入后,Struts其实就是担当了Servlet的职责,即任何一个处理请求都会经过Struts框架,并由他进行分发; 二、Stru转载 2012-06-26 22:29:54 · 663 阅读 · 0 评论 -
Struts2 Convention插件
Convention插件(转)" title="struts2 Convention插件(转)" style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px;转载 2012-06-26 22:57:16 · 592 阅读 · 0 评论 -
sturt2解决 Error setting expression 'XXX' with value '[Ljava.lang.String;@1dad8
之前写了个struts2的例子,action什么的都没有变化,可是就报错public class UserAction extends ActionSupport implements SessionAware{ private Map session; private User user; public String login(){ String result;原创 2012-09-22 16:09:29 · 5121 阅读 · 1 评论 -
struts2乱码解决总结大全
这两天,终于开始了我入软件开发的第一个网站。。。总体来说,还算是比较顺利的,呵呵,不过最后还是出现了一点小插曲,终于遇见了我最“期待”的乱码问题,乱码啊,乱码啊,你真是我这样小菜鸟级地上帝啊。。。现在开始说说我遇见的乱码情况,我的总体框架是前台界面一个表单,然后提交信息到后台的action里面,然后用在调用方法把数据提交到数据库里面。。。可惜一切都不像我想的那么完美,最后在表单提交到actio转载 2012-03-01 20:04:28 · 577 阅读 · 0 评论 -
Struts2标签取值方式
1.标签取值方式一 通过取值 当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可; 当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或者#attr.; 例子: 假设某Action中有person成员变量,在application转载 2012-10-06 08:45:02 · 465 阅读 · 0 评论 -
struts2 Action获取表单传值
1.通过属性驱动式 JSP: Action:直接通过get、set方法获取。 public class sysAction extends ActionSupport{ private String username; public S原创 2012-09-11 19:00:25 · 984 阅读 · 0 评论 -
struts2 配置web.xml struts.xml
配置web.xml,配置Struts2的过滤器任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。 通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载FilterDispatcher,只要Web应用负责加载FilterDispatcher,FilterDispa原创 2012-06-26 09:13:09 · 1018 阅读 · 0 评论