随笔分类 -  Struts2

摘要:1 再探ActionContext 我们知道,ActionContext是Action执行时的上下文,里面存放着Action在执行时需要用到的对象,也称之为广义值栈。Struts2在每次执行Action之前都会创建新的ActionContext,在同一个线程里ActionContext里面的属... 阅读全文
posted @ 2014-05-21 10:31 NW_KNIFE 阅读(6992) 评论(0) 推荐(1) 编辑
摘要:1OGNL概述 OGNL是对象图导航语言Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的属性,调用对象的方法,遍历整个对象的结构图,实现字段类型... 阅读全文
posted @ 2014-05-20 21:14 NW_KNIFE 阅读(518) 评论(0) 推荐(0) 编辑
摘要:在值栈(前篇)我们学习了值栈的基本知识,接下来,来看看在程序中具体如何使用值栈。 1ActionContext的基本使用 1.1如何获取? 要获取ActionContext有两个基本的方法,如果在不能获取到ActionInvocation的地方,可以直接使用ActionContext一个静... 阅读全文
posted @ 2014-05-20 20:47 NW_KNIFE 阅读(2495) 评论(0) 推荐(1) 编辑
摘要:1值栈是什么? 简单的说:值栈是对应每一个请求对象的轻量级的内存数据中心。 Struts2中一个很激动人心的特性就是引入了值栈,在这里统一管理着数据,供Action、Result、Interceptor等Struts2的其他部分使用,这样一来,数据被集中管理起来而不会凌乱,大大方便了程序编写... 阅读全文
posted @ 2014-05-20 20:27 NW_KNIFE 阅读(1091) 评论(0) 推荐(0) 编辑
摘要:在实际开发中,一个常见的功能要求是:有很多操作都需要登录后才能操作,如果操作的时候还没有登录,那么通常情况下会要求跳转回到登录页面。 1)如何实现这样的功能呢? 在具体实现之前,先来考虑几个问题: (1)这个功能应该在哪里实现? 要实现登录检查的功能,很明显是在Action运行之前,就要... 阅读全文
posted @ 2014-05-18 21:59 NW_KNIFE 阅读(1216) 评论(0) 推荐(0) 编辑
摘要:Struts2自带的logger拦截器只是打印出了Action所对应的URL以及执行的方法名称,这对实际开发来说是肯定不够的。实际开发中为了调试方便,要记录的信息比较多,通常需要把这次请求相关的几乎所有信息都打印出来,比如:要访问哪个Action类要访问这个Action类的哪个方法打印出这次请求... 阅读全文
posted @ 2014-05-18 21:44 NW_KNIFE 阅读(1909) 评论(0) 推荐(0) 编辑
摘要:1)什么是自定义的拦截器 所谓自定义的拦截器,就是由我们自己定义并实现的拦截器,而不是由Struts2定义好的拦截器。虽然Struts2的预定义拦截器已经满足了大多数情况的需要。但在有些时候,我们可能会根据项目的实际需要而自定义一些拦截器,来实现一些特别的功能。 2)开发自定义拦截器 其实... 阅读全文
posted @ 2014-05-18 21:28 NW_KNIFE 阅读(414) 评论(0) 推荐(0) 编辑
摘要:1)预定义拦截器 Struts2有默认的拦截器配置,也就是说,虽然我们没有主动去配置任何关于拦截器的东西,但是Struts2会使用默认引用的拦截器。由于Struts2的默认拦截器声明和引用都在这个Struts-default.xml里面,因此我们需要到这个文件的struts-default包里... 阅读全文
posted @ 2014-05-18 20:47 NW_KNIFE 阅读(466) 评论(0) 推荐(0) 编辑
摘要:1)拦截器是什么? 拦截器(Interceptor)是Struts2最强大的特性之一,它是一种可以让你在Action执行之前和Result执行之后进行一些功能处理的机制。来回顾一下官方给出的Struts2系统架构图中关于拦截器的部分,如下图所示: 这个图清晰的描述出了拦截器的运行地位,就是用... 阅读全文
posted @ 2014-05-18 19:33 NW_KNIFE 阅读(368) 评论(0) 推荐(0) 编辑
摘要:在Action中execute方法声明为:public String execute() throws Exception,这样,Action可以抛出任何Exception。 1)自己实现异常处理 我们还以helloWorldAction为例,在Action的execute方法中这样写:pu... 阅读全文
posted @ 2014-05-18 17:01 NW_KNIFE 阅读(1321) 评论(0) 推荐(0) 编辑
摘要:1)基本使用 名称为“chain”的ResultType,在struts-default.xml里的配置如下: chain是一种特殊的视图结果,用来将Action执行完之后链接到另一个Action中继续执行,新的Action使用上一个Action的上下文(ActionContext),数据也... 阅读全文
posted @ 2014-05-18 14:50 NW_KNIFE 阅读(6267) 评论(0) 推荐(0) 编辑
摘要:1)基本使用 名称为“redirect”的ResultType,在struts-default.xml里的配置如下: 通过配置可以看出,它对应的实现类是ServletRedirectResult。 这种Result同常也使用JSP作为视图技术。它包装的是javax.servlet.http... 阅读全文
posted @ 2014-05-18 12:12 NW_KNIFE 阅读(1400) 评论(0) 推荐(0) 编辑
摘要:1)基本使用 名称为“dispatcher”的ResultType,在struts-default.xml里的配置如下: 通过配置可以看出,它对应的实现类是ServletDispatcherResult。 如果采用JSP作为视图的实现技术,那么这个ResultType是最常用的。在这个Re... 阅读全文
posted @ 2014-05-18 11:57 NW_KNIFE 阅读(1074) 评论(0) 推荐(0) 编辑
摘要:简单的说,Result是Action执行完后返回的一个字符串,它指示了Action执行完成后,下一个页面在哪里。Result仅仅是个字符串,仅仅是用来指示下一个页面的,那么如何才能够到达下一个页面呢?下一个页面如何能正确地展示结果呢?这就该引出一个新概念——ResultType,所谓Result... 阅读全文
posted @ 2014-05-18 11:43 NW_KNIFE 阅读(2894) 评论(0) 推荐(1) 编辑
摘要:Struts2的Action的生命周期是:Struts2为每个请求都重新初始化一个Action的实例。可以稍微改造一下代码来验证一下。给HelloWorldAction加上一个public无参的构造方法,在里面输出一句话。大家都知道,一个Java类如果没有写构造方法,那么会有一个默认的publi... 阅读全文
posted @ 2014-05-17 21:55 NW_KNIFE 阅读(9525) 评论(0) 推荐(2) 编辑
摘要:在以前的学习中,元素的配置,都是用明确的配置,其name、class等属性都是一个明确的值。其实Struts2还支持class属性和method属性使用来自name属性的通配符。 1)接下来看看使用通配符的示例,如果我们使用以下配置: /s2impl/welcome.jsp 在... 阅读全文
posted @ 2014-05-17 21:48 NW_KNIFE 阅读(7910) 评论(2) 推荐(0) 编辑
摘要:元素可以把逻辑上相关的一组Action、Result、Intercepter等元素封装起来,形成一个独立的模块,package可以继承其他的package,也可以作为父包被其他的package继承,比如“”中,helloworld这个包就继承了struts-default这个包。 元素有如下属... 阅读全文
posted @ 2014-05-17 21:39 NW_KNIFE 阅读(30248) 评论(1) 推荐(0) 编辑
摘要:在Struts2中,Action可以不实现任何特殊的接口或者继承特殊的类,仅仅是一个POJO(Plain Old Java Object,简单的Java对象)就可以;也可以实现Xwork2中的Action接口;但是由于Xwork的Action接口非常简单,为程序员提供的帮助有限,因此,在实际开发... 阅读全文
posted @ 2014-05-17 19:12 NW_KNIFE 阅读(8733) 评论(0) 推荐(1) 编辑
摘要:1)前提条件 在讲解流程之前,假设我们已经建立了的一个名为strutsDeepen的web工程,该工程仅仅实现了简单的用户登陆与欢迎界面。具体的实现为:在web.xml中配置了Struts2的过滤器写了一个Action类,名称为loginAction在struts.xml中配置了这个Actio... 阅读全文
posted @ 2014-05-17 15:22 NW_KNIFE 阅读(11005) 评论(0) 推荐(0) 编辑
摘要:Struts2的官方文档里附带了Struts2的架构图,下面这张图上展示了Struts2的内部模块,以及它们的运行流程。 这张图上分了好多块,彼此之间相互联系,先浏览一下各块的名字,再留心一下运行图最下面的图例,分为四种颜色。橙色是Servlet Filters,过滤器链,所有的请求都要经过F... 阅读全文
posted @ 2014-05-17 12:33 NW_KNIFE 阅读(5813) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示