Struts2
文章平均质量分 90
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
Struts2为什么可以用EL表达式取值?
在一个应用了Struts2系列框架的项目中,在JSP页面常常用Struts附带的标签对表单元素取值,但,为什么EL表达式也能取到值栈(value stack)中的值呢?我们知道,JSTL默认是从page,request,session,application这四个Scope逐次查找相应的EL表达式所对应的对象的值。那么如果要使用JSTL来读取Action中的变量,就需要把Action中的变量放转载 2014-08-01 16:44:14 · 2445 阅读 · 0 评论 -
在Struts2使用集合对象保存表单提交参数
先上图,有这样的业务场景,一次表单提交需要批量添加n本书籍的信息我们来看下如何用Struts2的特性来一步搞定它!1.创建model类Book[java] view plaincopyprint?package com.crazycoder2010.struts2.bean; public class转载 2015-07-22 18:23:59 · 6271 阅读 · 2 评论 -
valuestack,stackContext,ActionContext.之间的关系
三者之间的关系如下图所示:ActionContext 一次Action调用都会创建一个ActionContext 调用:ActionContext context = ActionContext.getContext() ValueStack 由OGNL框架实现 可以把它简单的看作一个List Stack Object:放入s转载 2015-07-16 16:00:49 · 1071 阅读 · 0 评论 -
Struts2 使用SiteMesh做网页布局
简单来讲SiteMesh就是用来做网页母版 Layout分层的。 SiteMesh官方网站给出的最新版本是SiteMesh Version 2.4.1,但是下载不下来!!下载页面NOT FOUND!很囧有木有!无奈只能在findjar.com下载2.4.1的jar包。 或者使用Struts2的sitemesh包2.4.2,这个包是插件struts2-sitemesh-plugi转载 2015-07-18 20:42:24 · 1461 阅读 · 0 评论 -
Struts2源码分析
Struts2架构流程图Struts2部分类介绍这部分从Struts2参考文档中翻译就可以了。ActionMapper ActionMapper其实是HttpServletRequest和Action调用请求的一个映射,它屏蔽了Action对于Request等java Servlet类的依赖。Struts2中它的默认实现类是DefaultActionM转载 2015-07-18 21:02:50 · 1389 阅读 · 0 评论 -
struts2中RequestDispatcher问题
web.xml 2.4版本里,默认的filter只拦截request。 如果使用request.getRequestDispatcher("xx").forward(request,response),属于服务器内部forward,不会被拦截器拦截,所以你需要为filter配置拦截forward才行。 struts1用的是servlet,forward也会起作用。struts2里的fi转载 2015-07-18 20:51:44 · 3823 阅读 · 0 评论 -
struts1和struts2的几点区别
1) 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类;Struts 1的一个具体问题是使用抽象类编程而不是接口。Struts 2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能。Struts 2提供一个ActionSupport基类去实现常用的接口。即使Action接口不是必须实现的,只有一个包含execute方法转载 2015-07-18 20:56:49 · 940 阅读 · 0 评论 -
StrutsPrepareAndExecuteFilter Vs StrutsPrepareFilter and StrutsExecuteFilter
I am learning Struts2. I have a question in mind what is the difference between in these two implementation of Filter struts-prepare org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilt转载 2015-07-18 20:54:19 · 2308 阅读 · 0 评论 -
Sitemesh和Struts2结合时Filter的配制顺序
Sitemesh和Struts2结合时要特别注意它们各自Filter的顺序,否则会导致双方都不能正常工作。而又由于Struts2在2.1.3之前使用的是FilterDispatcher,2.1.3之后推荐使用StrutsPrepareFilter和StrutsExecuteFilter替代FilterDispatcher,因此配制上又会有所不同。 2.1.3之前的版本,sitemes转载 2015-07-18 21:01:52 · 1269 阅读 · 0 评论 -
struts2 注解配置
1、web.xml Java代码 struts2 class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter class>转载 2015-06-11 15:09:56 · 1266 阅读 · 0 评论 -
struts2注解json 配置文件json
result 中一定要 有name 属性和方法中的return对应1.注解Action中写法:package cn.damai.subscription.action; @ParentPackage("json-default") public class TestAction extends BaseAction{@Action(value="/faq/q转载 2015-06-27 10:28:22 · 4167 阅读 · 0 评论 -
Struts2 无后缀action请求
如果将Struts2的filter-mapping配置成filter-mapping> filter-name>struts2filter-name> url-pattern>/*url-pattern> filter-mapping>的话,struts2将可以处理无后缀的action请求,如/demo/hello.action 和/demo转载 2014-08-25 18:37:30 · 11632 阅读 · 1 评论 -
struts2 在result type = json 时 ,兼容json与jsonp 请求
callback即可,查看 struts2 JSONResult 源代码后,发现兼容json和jsonp protected String createJSONString(HttpServletRequest request, Object rootObject) throws JSONException { String json = JSONUtil.ser原创 2015-05-21 20:57:47 · 4730 阅读 · 0 评论 -
Struts2之自定义类型转换器
Struts2自定义类型转换器分为局部类型转换器和全局类型转换器(1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用date类型是可以接收到的,但是如果传的是20101112这样类型的字符串,用date类型是获取不到,并且会出现错误的,struts2提供了一种类型转换器供我们使用。以下为局部类型转换转载 2015-05-21 21:21:33 · 1035 阅读 · 0 评论 -
Struts2 自定义Result
注意:我只要是解决自定义返回Json 和异常处理问题新建一个类 AjaxResult 继承 StrutsResultSupport 看看代码吧public class AjaxResult extends StrutsResultSupport { /** * serialVersionUID */ private static fina转载 2015-05-21 20:57:39 · 3093 阅读 · 0 评论 -
扩展Struts2--自定义String和XML格式的Result
struts2虽然继承了webwork优秀的MVC分离,可是有很多地方让人百思不得其解!最让人离谱的是,返回的结果集中居然没有String,xml这两种非常常用的类型。还是自己动手,丰衣足食: 第一种方式:使用“PlainText Result” 先看官方文档对plain text结果的定义:“A result that send the content o转载 2015-05-21 22:12:08 · 1269 阅读 · 0 评论 -
自己手写Struts2
记得以前教Struts的时候,自己动手写过一个类似Struts的MVC框架。在培训的过程中,我发现这种过渡非常平滑:学习MVC设计模式时,自己动手写一个Struts框架,再使用自己写的小框架完成一个项目。这样既让学员深刻地理解了MVC的重要思想,又为后面学习Struts框架做好了铺垫,以至于后面真正培训Struts只需要短短5天时间。所以要想灵活掌握一个框架,最好的方式还是自己模仿着去实现它,然后转载 2015-05-21 22:13:22 · 1671 阅读 · 0 评论 -
Struts2返回JSON对象总结
1.导入jsonplugin包 Struts2.1.6:导入jsonplugin-0.34.jar包(下载包)和commons-logging-1.0.4.jar(Struts2 lib下有) Struts2.1.8导入struts2-json-plugin-2.1.8.1.jar(Struts2 lib下有) Struts2.2.1导入struts2-json-plu转载 2015-06-27 09:22:05 · 1611 阅读 · 0 评论 -
struts2整合json出现no result type defined for type 'json'的解决方法
struts2的json plugin可以实现struts2和json的完美结合,由于本篇主要是介绍整合过程中遇到的问题,所以编程实现的方法这里就不重复了,具体可以参看struts2的官方文档:http://struts.apache.org/2.2.1.1/docs/json-plugin.html。我在struts.xml中有如下action定义:action name="pr转载 2015-06-27 10:05:28 · 1239 阅读 · 0 评论 -
Struts2 静态资源映射
在struts2框架中有一些它所需要的公共的静态内容,比如说js文件和一些css文件。当框架需要这些静态内容的时候,FilterDidpatcher会自动提供给我们。那么FilterDidpatcher是如何知道我们在请求静态内容的呢?任何请求只要以“/struts/”开头,那么FilterDidpatcher就会认为它是在请求静态内容。在识别出请求是请求静态资源后FilterDidpatcher转载 2015-08-27 12:53:50 · 5633 阅读 · 0 评论 -
刨根问底--action属性赋值过程分析
首先看一个简单的action类:?1234567891011121314151617181920212223242526272829转载 2015-08-12 21:46:12 · 2638 阅读 · 0 评论 -
struts2的@Result annotation 如何添加params,并且在页面取值
1、action跳转至jsp后台:(需有get set 方法)@SuppressWarnings("rawtypes") @Action(value="/loadFileList",results={ @Result(name="attachList",location="/attach/attachList.jsp",params={"attachMemo1","${attach原创 2013-11-15 17:02:11 · 10617 阅读 · 0 评论 -
struts.objectFactory和struts.objectFactory.spring.autoWire
struts.objectFactory这个属性用于说明Struts2的对象池创建工厂,Struts2也有自己的对象池,就像Spring那样,在配置文件中你可以引用对象池中的对象,你可以借助于Spring中的对象池,当想要得到Spring中的对象池时,申明struts.objectFactory为Spring的对象池构建工厂。当指定struts.objectFactory为spring时,stru转载 2015-08-12 22:14:25 · 1058 阅读 · 0 评论 -
在web.xml中注册IntrospectorCleanupListener监听器以解决struts等框架可能产生的内存泄露问题
增加方式如下:[html]view plaincopylistener>listener-class>org.springframework.web.util.IntrospectorCleanupListenerlistener-class>l转载 2015-09-21 21:27:14 · 1137 阅读 · 0 评论 -
struts2 2.3xxx 升级至 2.5.10.1中遇到的问题
1、web.xml struts2的 filter和listener 包路径变动2、struts2.5.10.1 开始 log4j变更为使用 log4j2版本,需要显示引入 log4j2 jar 和 log4j1 兼容版本 org.apache.logging.log4j log4j-core 2原创 2017-07-11 17:21:58 · 4159 阅读 · 0 评论 -
Struts2版本2.3.24升级2.5.10.1小结
https://my.oschina.net/u/2552669/blog/868139因为Struts2 S2-045 Struts2 S2-046 漏洞问题 需要对struts2的版本进行升级首先进行jar替换需要移除的jar包有struts2-json-plugin-2.3.24struts2-core-2.3.24ognl-3.0.6log4j-转载 2017-07-11 17:22:33 · 6700 阅读 · 0 评论 -
Struts2升级版本至2.5.10,高危漏洞又来了
http://blog.csdn.net/zhulin2012/article/details/61916778前情概要漏洞年年有,最近特别多。2017年3月6日,Apache Struts2被曝存在远程命令执行漏洞,漏洞编号:S2-045,CVE编号:CVE-2017-5638,官方评级为高危,该漏洞是由于在使用基于Jakarta插件的文件上传功能条件下,恶意转载 2017-07-11 17:21:37 · 1401 阅读 · 0 评论 -
java.lang.NoSuchFieldError: VERSION_2_3_0 报错解决方案
java.lang.NoSuchFieldError: VERSION_2_3_0 at org.apache.struts2.views.freemarker.FreemarkerManager.createConfiguration(FreemarkerManager.java:331) at org.apache.struts2.views.freemarker.Freema转载 2017-03-01 16:04:26 · 4836 阅读 · 0 评论 -
Struts2实现文件上传并显示实时进度
基于浏览器的文件上传,特别是对于通过标签来实现上传的情况, 存在着严重的性能问题,因为用户提交了文件之后,在浏览器把文件上传到服务器的过程中,界面看上去似乎是静止的,如果是小文件还好些,如果不幸需要上传的 是几兆、几十兆甚至上百兆的文件,我相信那是一种非常痛苦的体验,我们中间的很多人应该都有过此种不堪的经历。 我们为了改善用户界面,通常会在处理量大或者是网络速度较转载 2016-09-14 11:27:58 · 4606 阅读 · 1 评论 -
struts2文件上传与错误信息国际化
struts.xml文件<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <!-- struts2文件上传时,第一个关卡,默认为2M,当上传转载 2016-09-14 11:23:31 · 2473 阅读 · 0 评论 -
Struts2文件上传-fileUpload拦截器
Struts2自带了文件上传拦截器方便进行文件上传,要使用这个功能,必须给使用了Struts2框架的工程添加commons.io包,然后在struts.xml里进行以下设置:在标签之外添加,这句指定了上传文件的临时存放目录,以这句为例,临时存放目录为应用所在根目录下的temp文件夹,假设我的应用放在D:\ProgramFiles\apache-tomcat-6.0.24\webapps下,转载 2016-09-14 11:21:45 · 5150 阅读 · 0 评论 -
关于struts2 中result type="stream"
struts2中 result="stream",可以实现文件的下载功能。这里有两篇比较清楚和基础的文章:http://kin111.blog.51cto.com/738881/167475 http://developer.51cto.com/art/20转载 2016-05-21 14:07:14 · 6351 阅读 · 0 评论 -
srtuts2 包继承时 默认拦截器无法拦截Unable to find interceptor class referenced by ref-name
原来父子 package的名字是 xxx-default ,结果一直无法拦截,最后去掉 - 就好了。。记录一下 父package<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.or原创 2015-10-28 17:18:32 · 3482 阅读 · 0 评论 -
struts2 使用注解 导出excel
做项目中需要用到导出excel的功能,记录一下。1、使用jxl导出。这个是从网上找的。这个不需要params inputName参数。[java] view plaincopy@Action(value = "vsealFileDepts.export1", results = { @Result(name = "succ转载 2013-11-15 16:42:03 · 3367 阅读 · 0 评论 -
Struts2 注解模式(范例)
相信大家一定看到了两个class中定义了一样的action,不过看类的元数据,是不同的命名空间。这里比较重要(对我来说)的是@Action(value = "/login", results = { @Result(name = "sucess", location = "/index.jsp"), @Result(name = "chain", loc转载 2016-03-18 21:18:16 · 1659 阅读 · 0 评论 -
struts2 中 action 属性自动注入的发现
以前一直认为 属性设置为 private 有 public 的 getset 方法才可以注入,今天发现 变量声明为 public 无需getset方法 struts2 也会自动注入 值原创 2015-12-18 21:20:24 · 3890 阅读 · 0 评论 -
【struts2】action中使用通配符
在以前的学习中,元素的配置,都是用明确的配置,其name、class等属性都是一个明确的值。其实Struts2还支持class属性和method属性使用来自name属性的通配符。 1)接下来看看使用通配符的示例,如果我们使用以下配置:action name="*_*" class="cn.javass.action.action.{1}Action" method="{2}">转载 2016-01-20 16:52:32 · 1355 阅读 · 0 评论 -
Struts2中json的使用总结
首先看下面的配置文件中的两种写法:当然Action所在的包必须继承json-default:第一种:[html] view plaincopyaction name="upload_*" class="uploadAction" method="{1}"> result type="json">转载 2015-11-16 16:25:00 · 3604 阅读 · 0 评论 -
struts2工作原理
1. Struts2架构图 请求首先通过Filter chain,Filter主要包括ActionContextCleanUp,它主要清理当前线程的ActionContext和Dispatcher;FilterDispatcher主要通过AcionMapper来决定需要调用哪个Action。 ActionMapper取得了ActionMapping后,在Dispatcher的servi转载 2015-05-20 13:28:19 · 1131 阅读 · 0 评论 -
Struts2中的异常处理
因为在Action的execute方法声明时就抛出了Exception异常,所以我们无需再execute方法中捕捉异常,仅需在struts.xml 中配置异常处理。为了使用Struts2的异常处理机制,必须打开Struts2的异常映射功能,这需要exception拦截器。在struts-default.xml文件中已经开启了exception拦截器。声明式异常捕捉Str转载 2015-03-02 11:23:15 · 1254 阅读 · 0 评论