1. struts-default.xml
2. struts-plugin.xml
3. struts.xml
4. struts.properties
5. web.xml
二、配置
在web.xml文件配置Struts2过滤器
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";
- }
- }
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>
<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>
三、页面取值
取action里bean属性的值:
<s:property value="message"/>
取request的属性值:
ServletActionContext.getRequest().setAttribute("n1", obj);
<s:property value="#request.n1"/>
取session里的值:
ActionContext.getContext().getSession().put("n2", obj);
<s:property value="#session.n2"/>
取application里的值:
ActionContext.getContext().getApplication().put("n3", obj);
<s:property value="#application.n3"/>
取ActionContext里的值:
ActionContext.getContext().put("n4", obj);
<s:property value="#attr.n4"/>
取URL传过来的参数:
http://localhost:8888/struts2/helloWorld!show.action?name=liurun
<s:property value="#parameters.name"/>
取在页面用<s:set/>赋的值:
<s:set name="uid" value="'liurun'"/> ————此处的值要用单引号括起来,否则,将当变量处理
<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}"/>
四、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
发表评论
-
oralce, DB2 , sql server , mysql各数据库字段总结
2011-06-17 10:11 1032<p style="text-align: c ... -
BoneCP参数配置
2011-03-25 11:55 1944一、BoneCP配置文件格式(bonecp-config.xm ... -
CSS学习整理
2011-03-10 14:29 960一、使用STYLE属性: 将STYLE属性直接加在个别的元件标 ... -
开发中常用的mime类型
2011-03-10 14:11 1243Java代码 3gp video/3 ... -
Mysql常用命令
2011-03-02 15:27 730show databases; 显示数据库 crea ... -
Mysql备份数据库语句
2011-02-24 20:29 2359mysqldump -hhostname -uusername ... -
Mysql数据库参数优化
2011-02-24 12:39 13011.获取当前配置参数运行下列命令可以获得当前服务器使用的配置参 ...
相关推荐
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...
以上就是Struts2学习笔记中涵盖的主要知识点,这些内容涵盖了从基础到进阶的应用,对于理解和掌握Struts2框架至关重要。尽管对于初学者来说可能有些复杂,但随着深入学习,你会发现Struts2的强大和实用性。
在Struts2中,学习笔记通常会涵盖以下几个关键概念: 1. **源代码查看和Javadoc**:开发者可以通过查看源代码来理解Struts2的工作原理,而Javadoc则提供了API文档,帮助理解类和方法的功能。 2. **包(Package)和...
Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...
张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...
本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...