Struts2的配置可以分成三个单独的文件
Web.xml
Structs.xml
Struct.properties
Web.xml
FilterDispatcher是一个servlet过滤器,它是整个Web应用的配置项,需要在“web.xml”中进行配置:
<filter>
<filter-name>action2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>action2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Struct.properties
剩下的就是自定义一些Web应用的执行环境和
在Struts2-Core的jar发行版中,有一个默认的属性文件,名为“default.properties”。如果要对属性进行修改的话,只需要在项目的源代码目录下,创建一个叫做“struts.properties”的文件,然后把想要修改的属性添加到文件中,新的属性就会把默认的覆盖掉了
struts.xml
配置应用中的组件。
Include标签:
<include … /> 是<struts>标签的一个子标签,它可以把其他配置文件导入进来,从而实现Struts2的模块化。它的“file”属性定义了要导入的文件的名称——该文件要和“struts.xml”一样有着相同的结构。
The Package Tag
???
Action
1 在Struts2中,Action可以以几种不同的方式来工作
Action最常用也是最基本的用法就是执行操作后返回单个结果。这个Action类不需要继承其它类,也不需要实现其他接口。这样的类就是一个简单的POJO。
class MyAction {
public String execute() throws Exception {
return "success";
}
}
2 多个结果
现在情况稍微复杂了一些,Action需要根据逻辑运算的结果,来生成多个结果
class MyAction {
public String execute() throws Exception {
if( myLogicWorked() ) {
return "success";
} else {
return "error";
}
}
}
<action name="my" class="com.fdar.infoq.MyAction" >
<result>view.jsp</result>
</action>
因为这里有两个结果,所以就为每一种不同的情况来配置要呈现给用户的结果。配置文件就变成了如下的样子:
<action name="my" class="com.fdar.infoq.MyAction" >
<result>view.jsp</result>
<result name="error">error.jsp</result>
</action>
前面我们已经看到了定义Action结果的最通用的方式。而实际上我们还有另外四种方式:
1. Action方法返回一个字符串——这个返回的字符串与“struts.xml”的一个action配置相匹配。例子中已经演示这一种方式。
2. 使用Code behind插件 ——当使用这个插件的时候,它会将Action的名字和Action返回的结果字符串进行连接来得到视图模板。比如说,如果URL是“/adduser.action”,而Action返回了“success”,那么要渲染的页面就是“/adduser-success.jsp” 。更多信息请参见http://struts.apache.org/2.x/docs/codebehind-plugin.html。
3. 使用 @Result注解——action类可以用@Results 和@Result注解来标注多个不同的结果。Action所返回的字符串需要与所注解的结果之一相匹配。
4. 方法返回一个Result类的实例——Action不必一定要返回一个字符串,它可以返回一个Result类的实例,该实例应当是已经配置好可使用的
结果类型
??
拦截器
架构目标
些不同层次的功能都是Web开发人员应当了解的:
♦ 在请求/响应周期中,所完成的核心任务是执行特定于每个Action的逻辑功能。
♦Action要完成逻辑功能或者访问资源的话,必须要访问或者持有业务对象。
♦ 在把HTML中基于字符串的值转换成原始数据类型或其他对象类型,以及把视图对象转换成业务对象或者数据表表示的过程中,这期间需要完成多种转化,映射和变换。
♦ 有一些横切(cross-cutting)的目的是为成组的action,或者应用中的所有action提供功能的
惯例重于配置是Rails带入主流应用开发中的概念。
提高效率技巧
验证
声明式验证
编程式验证
相关推荐
struts2学习笔记总结
struts2学习笔记,非本人所写,但有学习的价值,总结的很好,分享一个!
Struts2学习笔记,介绍了struts2的基础部分
struts2笔记_初步修改版_.struts2笔记_初步修改版_.struts2笔记_初步修改版_.
namespace :对应与项目名称后面的"/"(例如Struts2_0100_Introduction后面的"/") (http://localhost:8080/Struts2_0100_Introduction/) 四、 标签 是用来解决重名的问题,例如当系统的前台和后台都有一个action...
Struts2_学习笔记Struts2_学习笔记Struts2_学习笔记
Struts2_hibernate_spring学习笔记,郑大刘铭皓老师课堂笔记
struts2-scan 检测struts2漏洞,认证检测struts2漏洞
20110930_Struts2_0100_Introduction20110930_Struts2_0100_Introduction20110930_Struts2_0100_Introduction20110930_Struts2_0100_Introduction20110930_Struts2_0100_Introduction
Struts2入门教程_Struts2入门教程_skindzj_.zip
这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用
struts2学习笔记struts2学习笔记struts2学习笔记
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
Struts2_1000_CharacterEncodingStruts2_1000_CharacterEncodingStruts2_1000_CharacterEncoding
本人学习struts2的笔记,希望大家可以多多学习以后共同交流
Struts2_interceptor_和_filter区别
Struts2和JSON交互的例子,非常容易理解,Struts2和JSON交互的例子,非常容易理解。
1. struts2框架的引入 1)把struts2的相关jar包导入到项目中去 2)把struts2框架的配置文件struts.xml复制粘贴到项目中的src下面(同时也可以把log4j.properties放到src下) 在这里我们主要是要的这个struts.xml文件...
学习Struts2第三天笔记