Struts2
du_xian_sheng
这个作者很懒,什么都没留下…
展开
-
SSM框架原理作用及使用方法
作用:SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层使用spring MVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久化引擎原理:SpringMVC:1.客户端发送请求到Dispa转载 2017-12-17 13:09:47 · 1124 阅读 · 0 评论 -
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 解决方法
出现的问题是struts里面的 antlr-2.7.2.jar和hibernate 里面的anltr-2.7.6.jar。将anltr-2.7.2.jar包删除即可。原创 2016-12-16 09:41:07 · 349 阅读 · 0 评论 -
Struts2总结之Action和Result
当一个请求到达Servlet容器(Tomcate)后,将被传递给一个标准的过滤器链,在这个过滤器链中包括了可选的ActionContextCleanUp过滤器.当在Struts2 Web应用程序中集成SiteMesh时,才会用到此链。接下来,必须的FilterDispatcher被调用,它轮询ActonMapper(org.apache.struts2.dispatcher.mapper.Acti转载 2017-05-18 13:50:57 · 570 阅读 · 0 评论 -
Struts2结果视图result
result元素name:逻辑视图的名称,对应着动作方法的返回值。默认值是success。 type:结果类型,指的就是用什么方式转到定义的页面。默认是dispatcher。 下面我们看一下这些type具体的应用dispatcher:(默认值) 使用请求转发,转向一个页面。redirect: 使用重定向,转向一个页面。转载 2017-05-18 12:33:01 · 393 阅读 · 0 评论 -
Struts2中ActionContextCleanUp作用
延长action中属性的生命周期,包括自定义属性,以便在jsp页面中进行访问,让actionContextcleanup过滤器来清除属性,不让action自己清除。 为了使用WebWork,我们只需要在web.xml配置FilterDispatcher一个过滤器即可,阅读一下FilterDispatcher的JavaDoc和源码,我们可以看到它调用了: finally {转载 2017-05-18 10:53:50 · 547 阅读 · 0 评论 -
Struts2学习之处理结果
在最开始的《 Struts2学习之初见Struts2 》这篇文章中,也简单的说了说struts2中如何给请求者发送响应内容。这篇文章就对struts2中到底是如何处理响应结果进行详细的总结。通过前面的文章,我们知道Action只是Struts2控制器的一部分,所以它不能直接生成对浏览器的响应。Action只负责处理请求,负责生成响应的视图组件,通常就是JSP页面,而Action会为JS转载 2017-05-18 12:19:34 · 465 阅读 · 0 评论 -
Struts2的运行流程
1)前提条件 在讲解流程之前,假设我们已经建立了的一个名为strutsDeepen的web工程,该工程仅仅实现了简单的用户登陆与欢迎界面。具体的实现为:在web.xml中配置了Struts2的过滤器写了一个Action类,名称为loginAction在struts.xml中配置了这个Action类写了两个页面,一个是登录页面,一个是欢迎页面 只做了这么点事情,就可以在Strut转载 2017-05-18 11:53:15 · 404 阅读 · 0 评论 -
Struts2之ActionContent的理解
ActionContext介绍Action不用去依赖于任何Web容器,不用和Servlet复杂的请求(Request)、响应(Response)关联在一起。对请求(Request)的参数(Param),使用拦截器框架就可以自动调用属性的get()和set()方法从而把值设置到对应的Action字段中。但是,仅仅取得请求参数的值就能完全满足我们的功能要求吗?不,在Web应用程序开发中,除了将转载 2017-05-18 10:53:27 · 445 阅读 · 0 评论 -
myeclipse+maven实现多模块项目struts+spring+mybatis,详解
本文中创建maven项目,不使用命令,完全用myeclipse实现,个人感觉这样新手更容易接受! 开发环境:myeclipse 8.5+maven(非myeclipse自带插件)可参考http://blog.csdn.net/qq964166471/article/details/18708735完成配置。 目标:期望有两个web项目A和B,访问同一个数据库,即依赖同一个Jav转载 2017-04-21 11:33:17 · 932 阅读 · 0 评论 -
struts2值栈与action上下文
1、值栈的简单定义: (1)简单的说,值栈是对应每一个请求对象的轻量级的数据存储中心,在这里统一管理着数据,供Action、Result、Interceptor等Struts2的其他部分使用,这样数据被集中管理起来而不凌乱。 (2)当有请求的时候,Struts2会为每个请求创建一个新的值栈,也就是说,值栈和请求是一一对应的,不同的请求,值栈也不一样, 而值栈封装了一次请求所转载 2017-05-25 18:15:56 · 582 阅读 · 0 评论 -
Struts2默认对request进行了编码设置
直接贴Struts2的源码按照执行流程1.FilterDispacher类中:[java] view plain copy print?/** * Wrap and return the given request, if needed, so as to to transparently * handle multipart d转载 2017-05-14 18:12:53 · 1218 阅读 · 0 评论 -
struts2中的abstract
abstract的默认值是false在struts-default.xml的第73行配置时,声明了一个abstract="true"属性我们发现这个包中声明了结果类型、拦截器等等,却唯独没有声明的配置但是在我们自己定义的struts.xml中有若干个的配置因此abstract="true"表示当前包是抽象包,所以当前包中不允许出现的配置抽象包的作用极类似于Java抽象类。自己不转载 2017-06-16 12:05:21 · 362 阅读 · 0 评论 -
Struts2之异常处理
异常处理很重要,异常处理不是定义在验证阶段的,就拿登录这个功能来说吧,假如用户填入的信息都符合规范,通过了验证阶段,但去数据库中查询该用户信息时,发现数据库中没有与其匹配的信息,则会抛出异常,转向错误页面。1.先来自定义一个异常,该异常继承Exception父类[java] view plain copy package com.exception转载 2017-05-21 18:17:08 · 347 阅读 · 0 评论 -
struts2 在result type = json 时 ,兼容json与jsonp 请求
callback即可,查看 struts2 JSONResult 源代码后,发现兼容json和jsonp[java] view plain copy protected String createJSONString(HttpServletRequest request, Object rootObject) throws JSONExcep转载 2016-11-18 17:56:29 · 558 阅读 · 0 评论 -
Struts2 json插件返回json数据配置
application/json inputStream inline;filename="depts.json" depts \[\d+\].emps,\[\d+\原创 2017-11-21 16:04:10 · 368 阅读 · 0 评论 -
如何删除strut2校验后<s:fielderror>在jsp页面输出时的小黑点和自动换行?
删除前:删除后:删除方法:首先找到filederror.ftl文件,来源:从项目lib中找到struts2-core-2.2.1.jar,拷贝到桌面解压,在temple/simple就可以找到fielderror.ftl,然后删除里面的和只删标签,不删内容,删除完是这个样子:[html] view plain转载 2017-11-05 17:30:44 · 497 阅读 · 0 评论 -
Struts2下载文件点取消出现的异常解决
在使用Struts2下载文件时,如果点击保存或打开,没问题,点击取消时则会抛出如下异常: 严重: Servlet.service() for servlet default threw exception java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFa转载 2017-10-26 16:38:00 · 443 阅读 · 0 评论 -
FastJson bean序列化属性顺序问题
学习印记记录点滴 个人blog http://lzhenxing.com目录视图摘要视图订阅发布Chat异步赠书:10月Python畅销书升级 【线路图】人工智能到底学什么?! 程序员9月书讯 每周荐书(京东篇):618取胜之道、质量保障、技术解密)FastJson bean序列化属性顺序问题转载 2017-10-22 17:52:33 · 971 阅读 · 0 评论 -
c3p0详细配置
3301000false属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试使用。Default: null-->Test保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。De转载 2017-06-19 10:00:57 · 416 阅读 · 0 评论 -
Struts2(四)使用Struts2中的拦截器
一、拦截器及拦截器栈1.拦截器在Struts2的文档中提供了如图所示的体系结构图: 从图中我们可以发现一些重要的对象,今天着重要了解的是图中的Interceptor——拦截器。 拦截器是什么?拦截器就是一种可以在请求处理之前或者之后执行的Struts2组件,拦截器是Struts2的重要特性,Struts2框架中绝大多数功能都是由拦截器来完成的。转载 2017-06-19 19:43:51 · 357 阅读 · 0 评论 -
Struts2(三)使用Struts2实现文件的上传和下载
文件上传是我们在实际开发中经常遇到的一个问题,曾经使用commons-fileupload组件实现过文件上传下载;同样的,Struts2也可以实现文件上传下载,并且操作起来更加简单(以下只是一个简单的Demo,并不包含文件类型、大小判断等问题)。一、文件上传1.单文件上传 ①创建web项目FileUpDownloadDemo,并添加Struts2框架支持,创建uploa转载 2017-06-19 19:41:18 · 324 阅读 · 0 评论 -
Struts2(二)使用Struts2访问ServletAPI对象
在前面的示例中Struts2的Action中并没有使用到ServletAPI对象,但是在实际应用中我们往往会用到ServletAPI对象,比如用户登录成功后将用户信息保存在会话中。所以为了解决这个问题,Struts2提供了多种方式来访问ServletAPI对象,总的来说分为两大类: 使用与ServletAPI解耦的方式 使用与ServletAPI耦合的方式转载 2017-06-19 19:39:37 · 377 阅读 · 0 评论 -
Struts2(一)Struts2配置详解
一、Struts2概述I.在很长一段时间Struts1在MVC框架中占有绝对的地位,虽然Struts1可以很好地实现将控制与业务逻辑相分离,但是其自身仍然存在这一定的缺陷1.表现层支持单一 Struts1只支持jsp作为表现层,而在实际开发中不一定只是使用jsp作为表现层,如FreeMarker、Velocity等。2.对ServletAPI依赖 jsp+Servlet转载 2017-06-19 19:35:06 · 408 阅读 · 0 评论 -
在struts2中获取请求action名称或参数
1.Interceptor配置Xml代码 package name="sysManageServices" namespace="/" extends="struts-default"> interceptors> interceptor name="reqCheck" class="interceptor.RequestInt转载 2017-05-22 19:38:27 · 1587 阅读 · 0 评论 -
struts2 <s:iterator> status属性
iterator标签主要是用于迭代输出集合元素,如list set map 数组等,在使用标签的时候有三个属性值得我们关注1. value属性:可选的属性,value属性是指一个被迭代的集合,使用ognl表达式指定,如果为空的话默认就是ValueStack栈顶的集合.2.id属性:可选属性, 是指集合元素的id3.status属性:可选属性,该属性在迭代时会产生一个IteratorSt转载 2017-05-14 16:47:00 · 433 阅读 · 0 评论 -
List集合转JSONArray方法以及常见问题的解决办法
SSH 项目中异步提交需要用到JSON返回给页面一个json字符串在XXXAction就要把从DAO里查询返回的List集合转成JSONArray数组通常是:java代码:List list = bookService.findAll();//全查询返回book的List集合结果JSONArray jsonArray =JSONArray.fromObject(list);转载 2017-03-20 13:55:25 · 35046 阅读 · 0 评论 -
配置struts2的配置文件struts.xml
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> 指定web应用的默认编码为UTF-8,功能等同于原创 2016-10-13 15:42:27 · 443 阅读 · 0 评论 -
struts2OGNL表达式
浅析值栈ValueStack对象相当于一个栈,它贯穿整个Action的生命周期,每个Action类的对象实例都会拥有一个ValueStack对象当Struts2接收到一个*.action请求后,并不是直接调用Action方法,而是先将Action类的相应属性放到ValueStack对象的顶层节点值栈也位于内存中,它也是和parameters、request、session、applic转载 2016-11-30 17:56:29 · 383 阅读 · 0 评论 -
struts2配置常量<constant name="struts.devMode">,将值修改为true(开发模式有什么好处)的好处
在配置struts2中配置常量有时候会启动开发模式。那么为什么要启动开发模式,开发模式有什么好处?当struts的配置文件修改后,系统是否自动重新加载该文件,其中默认值为false,在开发阶段最好true1、启用了开发模式,可以输出日志记录,便于程序设计。2、启动开发模式以后,你在struts.xml配置文件中修改后就不用重新部署项目了。3、开发模式下设为true,这样可以打印转载 2016-12-13 16:48:06 · 399 阅读 · 0 评论 -
No object in the CompoundRoot has a publicly accessible property named 'submit'
在设置struts的devMode为true后 出现上述异常原因就是devMode下form中的input会在action中找针对input name的setter(struts.devMode = false,设置为true时,所有有名字(name)的input都必须有对应的setter,无论是input为hidden设置的隐藏域还是通过url传的参数值)解决方法就是注掉转载 2016-12-13 16:49:17 · 410 阅读 · 0 评论 -
如何在struts2拦截器中获得request
由struts2原理图可知道,interceptor发生在action调用之前,拦截器的参数就是ActionInvocation(action实例),ActionInvocation里封装了HttpServletRequest, HttpServletRequest request = (HttpServletRequest)ai.getInvocationContext().get(Serv转载 2016-12-15 19:01:07 · 646 阅读 · 0 评论 -
关于struts2 API 中InputConfig 内 methodName 和resultName的使用方法
@InputConfig(methodName="input2",resultName="resultTest") 的作用是改变默认返回的input视图 API中可查resultName只有在methodName没写如@InputConfig(resultName="resultTest") 时才起做用 Java代码 public class StudentAction e原创 2016-12-17 13:03:34 · 1505 阅读 · 0 评论 -
XML Schema
XML Schema 是基于 XML 的 DTD 替代者。XML Schema 描述 XML 文档的结构。XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。什么是 XML Schema?XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD。XML Schema 是 DTD原创 2016-12-21 10:22:19 · 350 阅读 · 0 评论 -
关于struts2中与Spring中Action对象创建的问题
在struts2架构中,Action对象的创建、Action对象属性的赋值以及Action对象的销毁,都是由struts2自己进行维护的,无需程序员参与; 在Spring+struts2架构中,Action对象需要由Spring产生,而不是由struts2进行维护(struts2架构中是这样);同时,在struts.xml配置文件中,指定Action的class时,指定的是一个转载 2016-12-27 12:30:00 · 1956 阅读 · 0 评论 -
json-lib之jsonConfig详细使用
一、防止包自含 在JSON-LIB中,要转换的对象包含自身对象时,会抛出异常There is a cycle in the hierarchy,解决办法: jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); 二、解决延迟加载产生异常的问题(net.sf.json.转载 2017-01-08 19:02:27 · 366 阅读 · 0 评论 -
struts2国际化--你知道LocalizedTextUtil吗?
今天在继续发邮件子系统时,遇到了一个问题,就是我们发邮件时也要国际化,就是同一封邮件,发给不同的用户,可能采用的语种也不同。如果有多少个语种就做多少模板,这是不现实的,因我们支持的语种比较多而且模板类型也比较多,这样数量就会大大增加,以后如果有需求更改,将是一个不小的工作量。 当然解决这个问题最好的方法,就是对这些模板里的信息进行国际化,关键是如何国际化。我不想为这个子系统专门建立一个单独转载 2017-02-05 19:03:29 · 995 阅读 · 0 评论 -
ssh项目异常用处理方式
在struts2中封装了自己的异常处理方式。我们在项目中可以根据自己的需要来处理自己的异常。一 异常信息封装可以建一个异常信息封装类,将项目中常见异常信息进行封装,常见信息包括: 1.异常种类: 如: 数据库操作异常; 应用操作异常(业务异常,如 权限不够等) ; 系统异常(如 应用服务器异常)2.具体异常: 如:"该数据库不存在!" 等等转载 2017-02-26 17:25:16 · 547 阅读 · 0 评论 -
警告: No configuration found for the specified action: 'checkLogin' in namespace: ''.的解决办法
用struts2做了一个简单的入门程序,运行成功了,但是总出现这个警告:警告: No configuration found for the specified action: 'checkLogin' in namespace: ''. Form action defaulting to 'action' attribute's literal value. 虽说对系统的运行没什么转载 2016-11-27 15:42:35 · 916 阅读 · 0 评论 -
struts2拦截器interceptor的三种配置方法
struts2拦截器interceptor的三种配置方法方法1. 普通配置法 ion name="register" class="edu.hust.action.RegisterAction"> /register.jsp /r转载 2016-11-26 12:11:37 · 449 阅读 · 0 评论 -
拦截器的执行顺序
public class OrderInterceptor extends AbstractInterceptor{ private String name; public String intercept(ActionInvocation ai) throws Exception{ String result="";原创 2016-11-26 12:00:10 · 1248 阅读 · 0 评论