Struts2配置详解

1.Namespace

1)namespace决定action的访问路径,默认为“”,可以接受所有路径的Action;
       2)namespace可以写为/,或者/xxx,或者/xxx/yyy,对应action访问路径为/index.action,/xxx/index.action或者/xxx/yyy/index.action
       3)namespace最好也用模块来进行命名

当url中输入不存在的Action的时候,定向到默认的Action

1.1 struts2配置详解

1.核心控制器

需要在web.xml中进行配置

对框架进行初始化,以及处理所有的请求

2.Action

开发Action

实现Action接口

继承ActionSupport类

配置Action

Action的作用

封装工作单元

数据转移的场所

返回结果字符串

3.Result

实现对结果的调用

result元素的值指定对应的实际资源位置

name属性表示result逻辑名

4.struts.xml

01.核心配置文件,主要负责管理Action,通常放在WEB-INF/classes目录下,在该目录下的struts.xml文件可以被自动加载

02.constant元素

配置常量,可以改变Struts 2框架的一些行为,name属性表示常量名称,value属性表示常量值

03.package元素

包的作用:简化维护工作,提高重用性,包可以“继承”已定义的包,并可以添加自己包的配置

name属性为必需的且唯一,用于指定包的名称

extends属性指定要扩展的包

namespace属性定义该包中action的命名空间 ,为可选属性

2.动态方法调用

DMI Dynamic Method Invoke(动态方法调用)

解决问题:

减少了配置文件中Action节点个数,<Result>节点

案例:

DimAction:

1 public class DmiAction extends ActionSupport{
2     public String del(){
3         return "del";
4     }
5     public String list(){
6         System.out.println("del");
7         return "list";
8     }
9 }

struts.xml:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3         "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4         "http://struts.apache.org/dtds/struts-2.3.dtd">
 5
 6 <struts>
 7     <!--修改struts.xml文件,无需重启tomcat-->
 8     <constant name="struts.devMode" value="true"></constant>
 9     <!--动态方法调用开启  默认开启-->
10     <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
11
12     <package name="day03" namespace="/" extends="struts-default">
13         <!--访问规则 http://localhost:8080/dmiAction!del-->
14         <action name="dmiAction" class="cn.happy.day03dmi.DmiAction">
15             <result name="list">/day02/list.jsp</result>
16             <result name="del">/day02/del.jsp</result>
17         </action>
18     </package>
19 </struts>

访问规则:

3.通配符

类似于正则:正则分为:匹配和限定所用

通配符使用案例

PatternAction

1 public class PatternAction extends ActionSupport {
2     public String del(){
3         return "del";
4     }
5     public String list(){
6         return "list";
7     }
8 }

struts.xml:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3         "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4         "http://struts.apache.org/dtds/struts-2.3.dtd">
 5
 6 <struts>
 7     <constant name="struts.devMode" value="true"></constant>
 8
 9     <package name="day04" namespace="/" extends="struts-default">
10         <action name="*_*" class="cn.happy.day04pattern.{1}" method="{2}">
11             <result name="{2}">/day02/{2}.jsp</result>
12         </action>
13     </package>
14 </struts>

访问规则:

4.ResultType

chain:转发到Action

dispatcher:默认值:转发到jsp页面

redirect:重定向到页面

redirectAction:重定向到Action

案例:返回类型为chain

ResultAction 
 1 public class ResultAction {
 2     public String list(){
 3         Map<String,Object> map=(Map<String,Object>)ActionContext.getContext().get("request");
 4         map.put("msg","lalalala~~~~~~~~~~~~~`");
 5         System.out.println("list=================");
 6         return "list";
 7     }
 8     public String add(){
 9         System.out.println("add=====================");
10         return "add";
11     }
12 }

struts.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3         "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4         "http://struts.apache.org/dtds/struts-2.3.dtd">
 5
 6 <struts>
 7     <!--修改struts.xml文件不用重启tomcat-->
 8     <constant name="struts.devMode" value="true"></constant>
 9
10     <package name="day05" namespace="/" extends="struts-default">
11         <action name="resultActionList" class="cn.happy.day05result.ResultAction" method="list">
12             <result name="list">/day02/list.jsp</result>
13         </action>
14
15         <action name="resultActionAdd" class="cn.happy.day05result.ResultAction" method="add">
16             <result name="add" type="chain">
17                 <param name="actionName">resultActionList</param>
18                 <param name="namespace">/</param>
19             </result>
20         </action>
21     </package>
22 </struts>

5.默认Action

效果:

6.全局结果集

GlobalAction
1 public class GlobalAction extends ActionSupport {
2     public String list(){
3         return "error";
4     }
5 }
GlobalResultTwo 
1 public class GlobalResultTwo extends ActionSupport {
2     public String list(){
3         return "error";
4     }
5 }

struts.xml:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3         "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4         "http://struts.apache.org/dtds/struts-2.3.dtd">
 5 <struts>
 6     <constant name="struts.devMode" value="true" />
 7     <package name="day06" namespace="/" extends="struts-default">
 8         <!--全局结果集,当多个action有相同的结果的时候,可以提取到这里,进行复用-->
 9         <global-results>
10             <result name="error">/error.jsp</result>
11         </global-results>
12
13         <action name="globalAction" class="cn.happy.day06globalresult.GlobalAction" method="list">
14             <result name="list">/day02/list.jsp</result>
15         </action>
16         <action name="globalActionTwo" class="cn.happy.day06globalresult.GlobalResultTwo" method="list">
17             <result name="list">/day02/list.jsp</result>
18         </action>
19     </package>
20
21 </struts>

效果:

原文地址:https://www.cnblogs.com/liutao1122/p/8472527.html

时间: 2024-11-08 18:22:12

Struts2配置详解的相关文章

【SSH2(理论篇)】--Struts2配置详解

上篇博客讨论了SSH2框架模型,在开发过程中发现SSH2的开发模型其实类似于经典的三层模式,在每一层中分别添加了不同的框架,显示层使用的是Struts2进行配置的,业务逻辑层使用的是Spring配置,数据持久层则采用的是Hibernate,开发模式简单易懂,接下来将会分别从三层着手讨论每一层的运行内容. 一.Struts体系简介 struts,是Apache软件基金会(ASF)赞助的一个开源项目,它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-V

Struts2配置详解_配置Action

Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法. public String execute() throws Exception Struts2并不是要求所有编写的action类都要实现Action接口,也可以直接编写一个普通的Java类作为action,只要实现一个返回类型为String的无参的public方

第三章 Struts2配置详解

3.1 Struts2执行过程    1.获取Struts2资源    2.在应用程序中导入Struts2的类库    3.在web.xml中配置StrutsPrepareAndExecuteFilter    4.编写Action类进行配置    5.配置返回结果与物理视图资源的关系    6.编写结果视图            web.xml <filter> <filter-name>struts2</filter-name> <filter-class&g

Struts2 配置详解

1. web.xml 此文件的配置可以参看struts2的示例文档 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filte

Struts2学习笔记二 配置详解

Struts2执行流程 1.简单执行流程,如下所示: 在浏览器输入请求地址,首先会被过滤器处理,然后查找主配置文件,然后根据地址栏中输入的/hello去每个package中查找为/hello的namespace,然后在包下寻找名为HelloAction的action,反射创建控制器HelloAction对象,调用method指定的方法hello,拿到返回值“success”,去result的配置节找success对应的页面(hello.js),呈现给用户. 2.Struts的架构,具体参考这里

struts2基本配置详解2

接上篇struts2基本配置详解,还有一些配置没有讲到,下面将继续. struts.xml <package name="com.amos.web.action" namespace="/" extends="struts-default"> <action name="HelloWorldAction" method="execute"> <result name="

struts2的执行流程与配置详解

本章主要讲解Struts的执行流程以及Struts的配置以及访问servletApi 全部代码下载: github链接:链接 写文章不易,欢迎大家采我的文章,以及给出有用的评论,当然大家也可以关注一下我的github:多谢: 1.Struts的执行流程: 1.服务器启动时: 加载项目web.xml 创建Struts核心过滤器对象, 执行StrutsPrepareAndExecuteFilter的doFilter 的 init()方法: 在StrutsPrepareAndExecuteFilter

(转)struts2.0配置文件、常量配置详解

一.配置: 在struts2中配置常量的方式有三种: 在struts.xml文件中配置 在web.xml文件中配置 在sturts.propreties文件中配置 1.之所以使用struts.propreties文件配置,是因为为了保持与WebWork的向后兼容 2.在实际开发中,在web.xml中配置常量相比其他两种,需要更多的代码量,会降低了web.xml的可读性 3.通常推荐在struts.xml文件中配置struts2的常量,而且便于集中管理 sturt2中搜索加载常量的顺序是: str

Struts2学习笔记(二)——配置详解

1.Struts2配置文件加载顺序: default.properties(默认常量配置) struts-default.xml(默认配置文件,主要配置bean和拦截器) struts-plugin.xml(配置插件) struts.xml(配置action或者常量等) struts.properties(常量配置) web.xml(配置JavaEE,如:监听器和过滤器) 2.Struts2配置文件详解 1)default.properties default.properties是Struts