- 浏览: 1441473 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (409)
- Java (48)
- Spring (29)
- struts2 (17)
- hibernate (4)
- 设计模式 (24)
- jbpm (1)
- JavaScript (5)
- 统计报表 (7)
- ExtJS_3.0 (35)
- struts1 (1)
- 分析设计 (3)
- Flex3 (24)
- UML (2)
- 数据库 (18)
- PowerDesigner (2)
- 应用服务器 (3)
- WebService (5)
- ActiveMQ_5.3.2 (6)
- Java通信技术 (11)
- GWT (6)
- OSGi (15)
- android (11)
- liferay6.0.6 (13)
- jquery (13)
- Linux (3)
- java.util.concurrent (16)
- guava (9)
- 开发模式 (1)
- 大数据 (2)
- 互联网金融 (4)
- treegrid-3.0 (7)
- 分布式 (8)
- GO语言 (4)
- maven (1)
- 缓存技术 (6)
- 其他 (2)
- 前端页面 (1)
- heasy (1)
- spring cloud(F版) (21)
- springboot (12)
- springmvc (5)
- mybatis (3)
- dubbo (1)
- 物联网 (0)
最新评论
-
raymond.chen:
谢谢您的分享
使用Ngrok解决通过外网访问内网web应用 -
wangyudong:
速度有点慢,不过在也找到了一个开源的holer,配置一个key ...
使用Ngrok解决通过外网访问内网web应用 -
a1006458222:
...
Axis2的部署和应用 -
偷师来了:
不好意思 这样的博客我觉得就灭有必要分享出来了 命令大家都会看 ...
Consul框架介绍 -
lliiqiang:
怎么直接删除文件夹啊?固定的几个文件可以删除,不固定的呢?需要 ...
Flex AIR —— 文件读写
一、在web.xml文件配置Struts2过滤器
<!-- 如果是2.1.3之前的版本,用org.apache.struts2.dispatcher.FilterDispatcher,否则,用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。 从Struts2.1.3开始,将废弃ActionContextCleanUp过滤器,而在StrutsPrepareAndExecuteFilter过滤器中包含相应的功能。 三个初始化参数: 1、config参数:指定要加载的配置文件。逗号分割。 2、actionPackages参数:指定Action类所在的包空间。逗号分割。 3、configProviders参数:自定义配置文件提供者,需要实现ConfigurationProvider接口类。逗号分割。 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>com.cjm.web.action</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
二、Struts2框架搜索Struts2常量的顺序:
1. struts-default.xml
2. struts-plugin.xml
3. struts.xml
4. struts.properties
5. web.xml
三、页面取值
取action里属性的值:
<s:property value="message"/>
取application里的值:
ActionContext.getContext().getApplication().put("n1", obj);
<s:property value="#application.n1"/>
取session里的值:
ActionContext.getContext().getSession().put("n2", obj);
<s:property value="#session.n2"/>
取URL传过来的参数:
http://localhost:8888/struts2/helloWorld!show.action?name=cjm
<s:property value="#parameters.name"/>
取request的属性值:
ServletActionContext.getRequest().setAttribute("n1", obj);
<s:property value="#request.n1"/>
取ActionContext里的值:
ActionContext.getContext().put("n4", obj);
<s:property value="#attr.n4"/>
取在页面用<s:set/>赋的值:
<s:set name="uid" value="'cjm'"/> ————此处的值要用单引号括起来,否则,将当变量处理
<s:property value="#uid"/>
<s:property value="#attr.uid"/>
在控件中取值:
<s:textfield name="name" value="%{#parameters._KEEP_MULTI_ENTITY}"/>
<s:textfield name="name" value="%{#parameters.name}"/>
四、配置
1、配置包:一个包可以继承其它包。抽象包不能包含Action定义。父包应该在子包前面定义。
2、配置命名空间:默认的命名空间是"",命名空间必须以“/”开头。命名空间只有一个级别。
3、配置Action:
当配置Action没有指定class属性时,系统自动使用ActionSupport类作为默认的Action处理类。
1)、动态方法调用
调用格式:ActionName!methodName.action
需要设置struts.enable.DynamicMethodInvocation为true
2)、为action元素指定method属性
<action name="login" class="com.cjm.LoginAction" method="login">
</action>
3)、使用通配符
<action name="*Action" class="com.cjm.LoginAction" method="{1}">
<action name="*_*" class="com.cjm.{1}" method="{2}">
<action name="*">
<result>/{1}.jsp</result>
</action>
4)、默认Action
<default-action-ref name="defaultAction">
4、配置结果:
1)、Struts2默认的结果类型是dispatcher,结果默认的name属性值为success
<result name="success" type="dispatcher">
<param name="location">/login.jsp</param>
<param name="charSet">GBK</param>
</result>
2)、redirect-action结果类型:
<result name="success" type="dispatcher">
<param name="actionName">show</param>
<param name="namespace">/sales</param>
</result>
3)、在结果里使用OGNL表达式
格式:${属性名},属性名就是对应Action实例里的属性。
<result>/${currentSkill.name}.jsp</result>
4)、全局结果
<global-results>
<result name="success">/target.jsp</result>
</global-results>
5、配置异常:
1)、全局异常
<global-exception-mappings>
<exception-mapping exception="java.sql.SQLException" result="sql"/>
<exception-mapping exception="java.sql.RuntimeException" result="runtime"/>
</global-exception-mappings>
2)、输出异常
<s:property value="exception"/> 输出异常对象本身
<s:property value="exception.message"/>
<s:property value="exceptionStack"/> 输出异常堆栈信息
6、结果类型的用法
1)、stream
public class HelloWorldAction extends BaseAction { private InputStream inputStream; public InputStream getInputStream() { return inputStream; } public String stream()throws Exception{ inputStream = new StringBufferInputStream("test result type of stream!"); return "stream"; } }
<package name="test" extends="struts-default" namespace="/test"> <action name="helloWorld" class="com.cjm.web.action.HelloWorldAction"> <result name="stream" type="stream"> <param name="contentType">text/html</param> <param name="inputName">inputStream</param> </result> </action> </package>
7、Struts2核心对象
1)、ServletActionContext
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
ServletContext servletContext = ServletActionContext.getServletContext();
ValueStack valueStack = ServletActionContext.getValueStack(request);
PageContext pageContext = ServletActionContext.getPageContext();
ActionContext actionContext = ServletActionContext.getContext();
2)、ActionContext
ActionContext.getContext().getActionInvocation(); —— return ActionInvocation
ActionContext.getContext().getApplication(); —— return Map
ActionContext.getContext().getSession(); —— return Map
ActionContext.getContext().getParameters(); —— return Map
ActionContext.getContext().getValueStack(); —— return ValueStack
ActionContext.getContext().getContainer(); —— return Container
ActionContext.getContext().get(key);
3)、跟Servlet交互的接口
ParameterAware
ServletRequestAware
ServletResponseAware
SessionAware
ApplicationAware
CookiesAware
发表评论
-
在Struts2中对Ajax请求的异常进行统一处理
2016-04-18 18:32 7321、自定义异常类 public class AjaxExc ... -
struts2原理
2015-10-15 22:00 761一个Struts2请求处理的步骤大致如下: 1、 ... -
struts2 + poi 数据导出excel
2013-03-18 17:47 1544java源码: import java.io.ByteAr ... -
在Freemarker中使用JSP标签库
2010-06-02 17:24 7090Freemarker作为Struts2的其中一种结果类型,可以 ... -
Struts2 Convention插件的使用
2010-05-17 23:58 73031、常量说明 struts.convention ... -
Struts2插件的开发
2010-04-21 21:16 3272一、插件类 /** * 使用Struts2的Plugin ... -
读书笔记:Struts2拦截器
2008-11-10 21:19 15801、拦截器相关基础类 Interceptor接口 ... -
自定义标签:联动下拉框(二)
2008-10-27 09:48 3263四、下拉框数据获取方法的源代码 public String f ... -
自定义标签:联动下拉框(一)
2008-10-26 12:22 3464该标签主要实现以下功能:当父下拉框的当前值发生变化时 ... -
基于Struts2的通用文件上传实现(二)
2008-10-25 11:36 2593四、Action配置 <action name=&quo ... -
自定义标签:下拉框月份选择控件
2008-10-21 22:17 2897一、标签源代码 public class CalendarMo ... -
自定义标签:下拉框年份选择控件
2008-10-21 22:13 5735一、标签源代码 public cl ... -
基于Struts2的通用文件上传实现(一)
2008-10-21 21:19 5839该文件上传实现可以限制上传文件的类型,限制上传文件的最 ... -
自定义标签:分页标签
2008-10-21 09:58 4594一、标签类源代码 public class PageNavig ... -
自定义标签:在JSP页面中动态执行Spring Bean的方法
2008-10-06 13:37 6202使用该自定义标签,可以在JSP页面中动态执行某个Sp ... -
Struts2标签的使用
2008-09-25 12:36 19421、iterator标签:用于对集合进行迭代 &l ...
相关推荐
基于以上信息,我们可以推测这个压缩包可能包含了一系列Jupyter Notebook文件,每个文件代表了一个独立的代码实验、学习笔记或者有趣的小项目。内容可能涵盖数据处理、算法实现、图形绘制等各种主题,且使用了多种...
2. **笔记和报告**:可能包含用Jupyter Notebook创建的分析笔记,详述了分析过程、发现的特征和结果。 3. **工具和脚本**:可能有用于静态分析(如PE查看器、字符串提取工具)和动态分析(如沙箱、网络嗅探器)的...
标题 "你好,世界:杂项存储" 暗示了这是一个关于编程入门或者基础概念的项目,可能包含了一些初级的编程示例。"杂项公共存储" 可能指的是一个包含各种不同类型的代码示例或者数据存储方法的集合。由于标签提到了 ...
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
"其他杂项"这部分可能包含一些随机但有价值的信息,比如学习心得或者灵感来源。 "Python"章节显示了编程语言Python的学习内容,可能包括基础语法、数据结构、函数、模块等内容。"Python练习"部分可能提供了实践性的...
标题 "data-and-code: 杂项代码,数据,注释等" 暗示着这是一个包含多种编程资源的集合,主要是用于教学或个人学习目的。其中可能包括各种编程语言的代码片段、数据集以及对这些内容的注释,以便于理解和应用。在...
### Linux学习笔记—01 Linux操作基础 #### 1. Linux 基础命令与用法 在Linux操作系统中,掌握一系列的基础命令是非常重要的。这些命令可以帮助用户进行各种日常操作,比如文件管理、目录切换、文件查看等。下面将...
### MongoDB 学习笔记知识点详解 #### 一、MongoDB 命令行基础操作 **1.1 帮助命令** - **help**:显示 MongoDB shell 的基本帮助信息。 - **db.help()**:提供当前数据库的帮助信息。 - **db.mycoll.help()**:...
本学习笔记和经验总结将深入探讨Node.js的核心概念、主要特性、常用模块以及实战技巧,帮助你从零基础到熟练掌握Node.js。 一、Node.js核心概念 1. 非阻塞I/O模型:Node.js采用事件驱动、非阻塞I/O模型,提高了...
本学习笔记将深入探讨ES6中的核心概念,帮助你全面掌握这一现代JavaScript语法。 1. **let 和 const 声明** 在ES6之前,我们主要使用`var`进行变量声明,但`let`和`const`的引入解决了作用域和提升(hoisting)的...
根据给定的"Bash shell学习笔记"文件信息,我们可以从中提炼出多个重要的IT知识点,具体如下: ### 1. 引言 - **Shell的角色**:Shell作为一个命令解释器和编程语言,在用户与UNIX/Linux系统内核之间提供了一个桥梁...
### Bash Shell 学习笔记知识点概览 #### 1. 引言 - **Shell**:作为用户与操作系统之间的桥梁,Shell提供了一种与系统进行交互的方式,支持用户执行命令和编写脚本来自动化任务。 - **Bash**:是Bourne-Again ...
一些学习时的草稿,和生活中的备忘录。 整理成文的目前有:(这些文章也会同时发布在,如果 github 图片转存导致模糊,可以去知乎看原文) 如何让你的网页“看起来”展现地更快 —— 骨架屏二三事 知乎链接 掘金链接 ...
### PDF电子书《Bash Shell学习笔记》知识点总结 #### 1. 引言 - **Shell**: Shell是一种命令解释器也是编程语言,为用户提供与操作系统内核交互的界面,支持用户执行各种命令和工具。 - **Bash**: 本书重点介绍的...
Orcad_Capture CIS_Allegro学习笔记 Orcad_Capture CIS_Allegro是一款专业的PCB设计软件,旨在帮助用户快速设计和开发电子电路板。下面是Orcad_Capture CIS_Allegro学习笔记中涉及的一些重要知识点: 1. Q&A:...
### CTF Web学习笔记知识点详解 #### 杂项部分 **1. 隐写术** 隐写术是一种将信息隐藏于其他非秘密数据之中的技术,这种技术通常用于隐蔽通信或数据保护。在CTF竞赛中,经常出现的情况是将flag隐藏在图像、音频...
### Vi学习笔记精要 **Vi(Visual Editor)**,是一种功能强大的文本编辑器,尤其在Unix和Linux系统中广泛使用。本学习笔记全面涵盖了Vi的使用方法,从基础操作到高级技巧,旨在帮助读者掌握Vi的强大编辑能力。 ##...
### HTML学习笔记知识点详解 #### 一、HTML基础知识概述 **1.1 计算机语言简介** - **机器语言**: 使用二进制代码(0 和 1)编写,计算机可以直接识别并执行。 - **汇编语言**: 介于机器语言和高级语言之间,用助...
【ThinkPHP学习笔记入门到深入篇】 ThinkPHP是一款基于PHP的开源快速开发框架,它以其简洁的代码结构、高效的性能和强大的功能深受开发者喜爱。这篇笔记涵盖了从基础到深入的多个方面,旨在帮助初学者迅速掌握...
【标题】"fromanirh:笔记,文档和其他杂项"揭示了这是一份个人整理的知识集合,可能包含了作者在IT领域的思考、学习笔记以及一些实用的操作方法。这个标题暗示了资源的多样性,涵盖了从理论理解到实际操作的多个层面...