博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2的动态Action和全局跳转视图以及配置各项默认值
阅读量:4657 次
发布时间:2019-06-09

本文共 5988 字,大约阅读时间需要 19 分钟。

1:Struts2的默认访问后缀是.action(特别需要注意的是改了配置文件web.xml或者struts.xml需要重启服务器)


 2:Struts2中常用的常量介绍:

<!-- 一:全局配置 -->

<!--1.请求数据编码  -->

<constant name="struts.i18n.encoding" value="UTF-8"/>
<!--2.修改struts2默认的自定义后缀 -->
<constant name="struts.action.extension" value="action,do,"/>
<!--3.设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭   -->
<constant name="struts.serve.static.browserCache" value="false"/>
<!--4.当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开   -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!--5.开发模式下使用,这样可以打印出更详细的错误信息  -->
<constant name="struts.devMode" value="true" />
<!--6.默认的视图主题  -->
<constant name="struts.ui.theme" value="simple" />
<!--7.与spring集成时,指定由spring负责action对象的创建   -->
<constant name="struts.objectFactory" value="spring" />
<!--8.该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为 false -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<!--9.上传文件的大小限制 -->
<constant name="struts.multipart.maxSize" value="10701096"/>


 3:Struts2的动态Action的简单应用和多个.xml的使用:

第一步:引包,略去

第二步:配置web.xml

1 
2
3
struts2_20170219
4
5
index.html
6
index.htm
7
index.jsp
8
default.html
9
default.htm
10
default.jsp
11
12 13
14
15
16
struts2
17
18
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
19
20
21
22
struts2
23
24
/*
25
26

第三步:开发第一个Action,配置第一个struts01.xml文件

1 package com.bie.struts01; 2  3 import com.opensymphony.xwork2.ActionSupport; 4  5 /**  6 * @author BieHongLi  7 * @version 创建时间:2017年2月19日 下午3:08:53  8 * 开发action,处理请求 9 */10 public class HelloAction extends ActionSupport{11     12     private static final long serialVersionUID = 1L;13     14     /**15      * 重写execute,处理请求的方法16      */17     @Override18     public String execute() throws Exception {19         System.out.println("访问到了action,正在 处理请求");20         System.out.println("hello world!!! struts2");21         return SUCCESS;22     }23     24 }
1 
2 5 6
7
8
9
10
success.jsp
11
12
13 14 15

第四步:开发第二个Action,配置第二个struts02.xml文件

1 package com.bie.struts02; 2  3 import com.opensymphony.xwork2.ActionSupport; 4  5 /**  6 * @author BieHongLi  7 * @version 创建时间:2017年2月20日 下午4:05:38  8 *  9 */10 public class TestAction extends ActionSupport{11 12     private static final long serialVersionUID = 1L;13     14     public String test(){15         System.out.println("测试的方法!!!");16         return SUCCESS;17     }18     19 }
1 
2 5 6
7
8
9
10
11
success.jsp
12
13
14 15 16

第五步:配置struts2的全局变量以及总struts.xml文件;

需要注意的是动态Action默认是不使用的,将false改为true即可使用动态Action。

1 
2 5 6
7 8
9
10 11
12
13
14 15 16

运行效果如下所示:(注意:动态Action的访问是action的name属性加!后面是方法名即可访问。)详细如下图所示:


4:配置各项默认值:详解如下所示  配置全局跳转视图,先去action的result找,如果没有就去全局视图找:

 

success.jsp

 

1 
2 5 6
7
8
9
10
11
success.jsp
12
13 14
15
16
17 18
19
20
23
24 25 26
27
35
36
37 38 39

5:Struts2的Action的开发的几种方式

    (1):方式一,继承ActionSupport,最经常使用的。
           如果用struts的数据校验功能,必须继承此类;
    (2):方式二,实现Action接口
    (3):方式三,手动写;


 6:使用通配符进行配置Action(在struts中配置信息中,可以用*和{1}优化配置;),如下所示:

1 package com.bie.lesson03; 2  3 import com.opensymphony.xwork2.ActionSupport; 4  5 /**  6 * @author  Author:别先生  7 * @date Date:2017年9月10日 下午10:22:34  8 * 9 *10 */11 public class StrutsConfig extends ActionSupport{12 13     /**14      * 15      */16     private static final long serialVersionUID = 1L;17 18     public String login() {19         20         System.out.println("模拟的登陆的方法");21         22         return SUCCESS;23     }24     25     public String register(){26         27         System.out.println("模拟的注册的方法");28         29         return SUCCESS;30     }31     32 }

 然后配置strutsConfig.xml配置文件,注意这里的Action使用了占位符进行配置:

1 
2 5 6
7
8
9
15
16
success.jsp
17
18 19
20 21

然后在总的配置文件struts.xml中引入配置文件strutsConfig.xml即可,如下所示:

1 
2 5 6
7
8 9
10 11
12

访问的时候如下所示:

对比一下可以很清晰的发现他们之间的区别,这就是使用了占位发简化开发;


7:Struts的常量

        Struts1中默认访问后缀是*.do
        Struts2中默认访问后缀是*action

  如何修改默认访问后缀:

      (1):Struts的访问后缀在哪里定义:
           在default.properties文件中
          默认访问后缀:struts.action.extension=action,,

1 
2 5 6
7
8 9
10
11
12 13 14

 8:配置的顺序书写,?代表0或者1,*代表0或者多:

The content of element type "package" must match "(

  result-types?,

  interceptors?,

  default-interceptor-ref?,

  default-action-ref?,

  default-class-ref?,

  global-results?,

  global-exception-mappings?,

  action*)".

 

 

 

转载于:https://www.cnblogs.com/biehongli/p/6420594.html

你可能感兴趣的文章
hdu 1029
查看>>
Docker 容器的网络连接 & 容器互联
查看>>
吾爱专题脱壳练习----压缩壳练习之三
查看>>
LeetCode -- Palindrome Linked List
查看>>
栈应用——逆波兰式表达式的值
查看>>
vscode 快速生成html
查看>>
HTML5 全屏化操作功能
查看>>
返本求源——DOM元素的特性与属性
查看>>
4、C#进阶:MD5加密、进程、线程、GDI+、XML、委托
查看>>
部署DLL webservices 若干费脑点
查看>>
zabbix监控报错zabbix server is not running解决方法
查看>>
MyEclips快捷键,多行注释
查看>>
【原】ios打包ipa的四种实用方法(.app转.ipa)
查看>>
python中的nonloca和global
查看>>
JavaScript延时执行函数中对call和apply的应用
查看>>
zookeeper-3.4.5-cdh5.1.0 完全分布式安装
查看>>
1.2输出100以内的素数&输出前100个素数。
查看>>
小白的python之路11/14
查看>>
客户端传入数据的校验-RestController进阶
查看>>
靠查看英语资料 , “一不小心”成了国内第一
查看>>