- 浏览: 1418659 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (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 6841、自定义异常类 public class AjaxExc ... -
struts2原理
2015-10-15 22:00 721一个Struts2请求处理的步骤大致如下: 1、 ... -
struts2 + poi 数据导出excel
2013-03-18 17:47 1508java源码: import java.io.ByteAr ... -
在Freemarker中使用JSP标签库
2010-06-02 17:24 7049Freemarker作为Struts2的其中一种结果类型,可以 ... -
Struts2 Convention插件的使用
2010-05-17 23:58 72581、常量说明 struts.convention ... -
Struts2插件的开发
2010-04-21 21:16 3238一、插件类 /** * 使用Struts2的Plugin ... -
读书笔记:Struts2拦截器
2008-11-10 21:19 15301、拦截器相关基础类 Interceptor接口 ... -
自定义标签:联动下拉框(二)
2008-10-27 09:48 3214四、下拉框数据获取方法的源代码 public String f ... -
自定义标签:联动下拉框(一)
2008-10-26 12:22 3415该标签主要实现以下功能:当父下拉框的当前值发生变化时 ... -
基于Struts2的通用文件上传实现(二)
2008-10-25 11:36 2552四、Action配置 <action name=&quo ... -
自定义标签:下拉框月份选择控件
2008-10-21 22:17 2862一、标签源代码 public class CalendarMo ... -
自定义标签:下拉框年份选择控件
2008-10-21 22:13 5687一、标签源代码 public cl ... -
基于Struts2的通用文件上传实现(一)
2008-10-21 21:19 5800该文件上传实现可以限制上传文件的类型,限制上传文件的最 ... -
自定义标签:分页标签
2008-10-21 09:58 4553一、标签类源代码 public class PageNavig ... -
自定义标签:在JSP页面中动态执行Spring Bean的方法
2008-10-06 13:37 6142使用该自定义标签,可以在JSP页面中动态执行某个Sp ... -
Struts2标签的使用
2008-09-25 12:36 18971、iterator标签:用于对集合进行迭代 &l ...
相关推荐
es6 学习笔记
WCF 学习笔记 WCF 杂项 WCF Security WCF Transaction WCF MSMQ __
Nodejs学习笔记以及经验总结
CTF Web学习笔记,包含杂项和WEB两部分,包含杂项简介,WEB知识点总结以及Web常用套路总结。
笔记 阅读与学习 目录列表 目录 说明 读 读书笔记 学习 技能学习 正在学习 知识学习 其他 其他杂项 Python Python练习 文档浏览
一些学习时的草稿,和生活中的备忘录。 整理成文的目前有:(这些文章也会同时发布在,如果 github 图片转存导致模糊,可以去知乎看原文) 如何让你的网页“看起来”展现地更快 —— 骨架屏二三事 知乎链接 掘金链接 ...
React Native 学习笔记,总结的还不错咯
拥有九大类、43页,都是作者在学习thinkphp时候做的学习笔记,此适合刚开始学习thinkphp框架人员和学完后复习所用,对php的语法有些了解的人员。此包含thinkphp介绍、配置文件格式与形式、路由、控制器、请求和响应...
Java的常见集中设计模式学习笔记
ES6 构建工具,ES6项目构建框架,es6开发初始架构编译项目, 学习ES6项目, ES6学习笔记, gulp, webpack, babel
python杂项 Python_Django_学习笔记 python_pidaqing等
杂项,日常学习中遇见的一些问题,进行简单记录。未来会详细整理到javaNIO基础前置笔记网上搜集。 网上搜集网上搜集停止更新,还是官方文档好用网上搜集基础上进行补充整理网上搜集基础上进行补充整理网上搜集基础...
笔记编程Ruby Ruby元编程 Ruby on Rails教程 敏捷Web开发Rails 5 附注4(21-24) 杂项Ruby其他注释Rails杂项说明上传文件说明注意事项Sidekiq注意Webpacker注意相关的其他项目及笔记: 资本主义研究耙研要学习: ...
1.1 搭建交叉编译器 1.2 Menuconfig 中选择 y 和 m 的区别 1.3 分析 uboot 启动流程 1.4 更新 linu 下 gcc 版本 1.5 配置 WiFi 无线热点 1.6 制作根文件系统 1.7 Linux 下(SD 卡) 磁盘分区,...3.1 仿写杂项设备框架
brightml: 使用“零配置”使用机器学习自动管理笔记本电脑的亮度
ipython笔记本 此存储库包含我创建的各种IPython笔记本,以对库进行实验并通过练习进行工作,并探索我发现有趣的主题。 我在下面添加了笔记本查看器链接。 单击链接以查看笔记本的...杂项涵盖各种有趣主题的笔记本!
机器学习数学(MML书)-我的自学 按文件夹: Python代码 只是播放我用来更好地理解各种概念的代码。 高斯主义者的混合尤其棘手。 本章习题解答 每章练习的解决方案。 笔记本可能会花费一些时间来渲染所有LaTeX。 第...
这里是一些地理信息科学/计算机科学与技术的课堂笔记/作业(或者也许也是自学的部分,存放一些杂项)的整理,主要包含各种本科课程的作业、笔记、项目链接,对课程的总结和经验分享等等...也许可以供您参考;不过我...
这里是一些地理信息科学/计算机科学与技术的课堂笔记/作业(或者也许也是自学的部分,放置一些杂项)的整理,主要包含各种本科课程的作业,笔记,项目链接,对课程的总结和经验分享等等...也许可以供您参考;不过我...
主要分享jQuery源码剖析系列、JavaScript彻底搞懂系列、JavaScript Dom操作、ES6详解系列、javaScript设计模式系列、数据结构与算法系列、Vue、Node.js等等,分享内容会附加优质的学习博客连接以供全面参考学习。