Struts2 02--通配符
在以前没有使用Struts时,web与前台的数据交互通过Servlet+jsp页面。一个增删改查往往需要写四个Servlet来处理数据;在使用struts之后,Servlet不再被使用,而是通过struts.xml+*Action.class来获取数据。这时候Action.class不需要在编写四个,只要写一个,里面再写四个方法就行了;再通过struts.xml里面配置访问路径。那么问题来了?
struts.xml里面有应该怎么来配置呢?
在上一篇《Struts2 01---环境搭配》中有提到过struts.xml的规范。一个struts.xml里面常会用到的属性有<package> <action> <result>等等。
在Struts2框架中是通过package来管理action、result、interceptor、interceptor-stack等配置信息的。
package属性如下:
一般来说,我们使用的时候配置name extends就足够了。
<action>属性如下:
这个我一般会配置name class method三个属性,如果在配置的时候没有设置method属性就会执行对应的Action.class中的execute();
配置的时候一般一个方法对应一个这样的配置:
<action name="IndexAdd" class="com.action.IndexAction" method="add">
<result name="success" type="redirect"> /index.jsp</result>
</action>
可是这种配置虽然不难配置,但是随着方法越来越多,配置方法的action也会越来越多:
<action name="IndexAdd" class="com.action.IndexAction" method="add">
<result name="success" type="redirect"> /index.jsp</result>
</action>
<action name="IndexUpdate" class="com.action.IndexAction" method="update">
<result name="success" type="redirect"> /index.jsp</result>
</action>
<action name="IndexGetAll" class="com.action.IndexAction" method="GetAll">
<result name="success" type="redirect"> /index.jsp</result>
</action>
那么这个时候其实我们是可以通过通配符来简化配置的代码的,拿上面这一段代码来说,使用了通配符之后:
<action name="Index*" class="com.action.IndexAction" method="{1}">
<result name="success" type="redirect"> /index.jsp</result>
</action>
在同一个Action.class中的方法都只需要一个<action>来执行,地址是action的name属性值+Action.class中的方法名。*代指方法名,{1}代指*。
其实通配符还有一种:“!”,这个是一个过时的通配符;我不会使用,只是知道有这个通配符。
通配符的使用不仅可以用在<name>+<method>上,<result>也可以通过通配符来简化代码;
<result>属性如下:
type属性里面有很多返回结果类型,但是我一般用的都是转发或者重定向。默认的就是转发,重定向是redirect ;
Struts2 02--通配符的更多相关文章
- Struts2中通配符
1.Struts2中通配符可通过请求的url路径来确定包.类.方法.返回值名. 如 <action name="*_*_*_*" class="cn.javass. ...
- Struts2的通配符配置方式
Struts2的Action类很有意思,你可以使用3种方式来实现具体的Action类: 让你的Action类继承自ActionSupport类(项目中最常用这种方式,因为ActionSupport类中 ...
- Struts2笔记——通配符和动态方法调用
通配符映射 * 一个 Web应用可能有成百上千个 action 声明. 可以利用 struts提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 * 通配符映射规则 > 若 ...
- Struts2 使用通配符动态请求Action
在以前的学习中,<action>元素的配置,都是用明确的配置,其name.class等属性都是一个明确的值.其实Struts2还支持class属性和method属性使用来自name属性的通 ...
- 4、mybatis动态sql+struts2(通配符+全局配置+分页)
1.创建userinfo.sql数据库脚本 create table USERINFO ( id NUMBER not null, uname ), password ), age NUMBER ) ...
- struts2 利用通配符方式解决action太多的问题
<!-- 创建包default,继承struts-default --> <package name="default" extends="str ...
- struts2 action通配符
首先,看一个struts2的配置文件: <package name="actions" extends="struts-default" namespac ...
- struts2的通配符与动态方法调用
1.Action标签中的method属性 我们知道action默认的执行的方法是execute方法,但是一个action只执行一个方法我们觉得有点浪费,我们希望在一个action中实现同一模块的不同功 ...
- struts2之通配符映射
系统有n多个请求时候,不可能以一个action对应一个映射.可以用通配符映射将成百上千请求简化成一个通用映射. 通配符映射规则:1.若找到多个匹配,没有通配符的将胜出. 2.若指定的动作不存在,str ...
- [JavaWeb基础] 018.Struts2 Action通配符使用
Struts2中有一个很牛逼的action通配符,可以用来简化action配置,以我们将要讲解的案例来说,如果我们要对一个学生信息进行增加,删除,修改,那么按照原来的做法,我们需要写3个Action来 ...
随机推荐
- Seesion工作原理
session的工作原理一.术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相 ...
- 使用BootStrap框架设置全局CSS样式
一.排版 标题 HTML 中的所有标题标签,<h1> 到 <h6> 均可使用.另外,还提供了 .h1 到 .h6 类,为的是给内联(inline)属性的文本赋予标题的样式. & ...
- 结队编程--基于GUI的四则运算
coding地址 https://git.coding.net/lizhiqiang0x01/GUI-sizeyunsuan.git 李志强 201421123028 连永刚 201421123014 ...
- JAVA基础第三组(5道题)
11 [程序11] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件 ...
- 3rd-Bing Dict使用分析
英语学习APP的案例分析 0x00 写在前面 我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信.QQ,等等都是软件,都很值得分析.你为何成为它们的用户 ...
- Swing-JTable的渲染器与编辑器使用demo
JTable的内容.外观.事件响应在很大程度上是由渲染器与编辑器控制的.具体说来,渲染器负责单元格的外观比如前景色.背景色,以及单元格提示:编辑器负责单元格的内容和事件响应.编辑器默认为文本框形式,也 ...
- 201521123080《Java程序设计》第1周学习总结
#1. 本周学习总结 Java开发环境,如何用记事本和eclipse进行编程. #2. 书面作业 Q1.为什么java程序可以跨平台运行?执行java程序的步骤是什么?(请用自己的语言书写) ...
- 201521123039 《java程序设计》第十一周学习总结
1. 本周学习总结 2. 书面作业 本次PTA作业题集多线程 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问,还有 ...
- 201521123112《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代 ...
- Oracle-SQL-按月统计自助终端交易量
SQL实现的目标: 基本情况 现金交易情况 转账情况 转账交易情况(明细) 其它业务情况 交易量汇总 日均交易量 交易金额 绩效情况(万元) 支行名 支行号 所属网点 网点号 管理员帐户 管理员 终端 ...