在以前没有使用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--通配符的更多相关文章

  1. Struts2中通配符

    1.Struts2中通配符可通过请求的url路径来确定包.类.方法.返回值名. 如 <action name="*_*_*_*" class="cn.javass. ...

  2. Struts2的通配符配置方式

    Struts2的Action类很有意思,你可以使用3种方式来实现具体的Action类: 让你的Action类继承自ActionSupport类(项目中最常用这种方式,因为ActionSupport类中 ...

  3. Struts2笔记——通配符和动态方法调用

     通配符映射 * 一个 Web应用可能有成百上千个 action 声明. 可以利用 struts提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 * 通配符映射规则     > 若 ...

  4. Struts2 使用通配符动态请求Action

    在以前的学习中,<action>元素的配置,都是用明确的配置,其name.class等属性都是一个明确的值.其实Struts2还支持class属性和method属性使用来自name属性的通 ...

  5. 4、mybatis动态sql+struts2(通配符+全局配置+分页)

    1.创建userinfo.sql数据库脚本 create table USERINFO ( id NUMBER not null, uname ), password ), age NUMBER ) ...

  6. struts2 利用通配符方式解决action太多的问题

    <!-- 创建包default,继承struts-default -->    <package name="default" extends="str ...

  7. struts2 action通配符

    首先,看一个struts2的配置文件: <package name="actions" extends="struts-default" namespac ...

  8. struts2的通配符与动态方法调用

    1.Action标签中的method属性 我们知道action默认的执行的方法是execute方法,但是一个action只执行一个方法我们觉得有点浪费,我们希望在一个action中实现同一模块的不同功 ...

  9. struts2之通配符映射

    系统有n多个请求时候,不可能以一个action对应一个映射.可以用通配符映射将成百上千请求简化成一个通用映射. 通配符映射规则:1.若找到多个匹配,没有通配符的将胜出. 2.若指定的动作不存在,str ...

  10. [JavaWeb基础] 018.Struts2 Action通配符使用

    Struts2中有一个很牛逼的action通配符,可以用来简化action配置,以我们将要讲解的案例来说,如果我们要对一个学生信息进行增加,删除,修改,那么按照原来的做法,我们需要写3个Action来 ...

随机推荐

  1. 整个IT界可分为13块大领域

    IT界可以划分为13个领域 Location: NanJing

  2. ★不容错过的PPT教程!

    IT工程师必须学会的计算机基础应用之一--PPT! 28项大神级PPT制作技术,学会后让你变成PPT高手哦!更多实用教程,请关注@IT工程师 !

  3. java1.8新特性

    转自:http://www.oschina.NET/translate/everything-about-Java-8 建议去看原文,此处转载只是为了记录. 这篇文章是对Java8中即将到来的改进做一 ...

  4. 201521123050 《Java程序设计》第7周学习总结

    1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 代码: public boolean contains(Object o) ...

  5. 201521123006 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 接口与抽象类拥有相同之处:(1)都代表系统的抽象层. (2)都不能被实例化(不能 ...

  6. [转载] sublime text 2 调试python时结果空白

    之前用的时候都一切正常,今天突然就出现了这个问题.按ctrl+b执行的时候结果只有空白,查了很多文章都只提到了中文路径.系统路径等等,没有解决问题,直到看到了这篇文章:http://384444165 ...

  7. 201521123066《Java程序设计》第十三周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  8. 201521123015 《Java程序设计》第13周学习总结

    1. 本周学习总结 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? IP地址不同 ...

  9. Linux文件管理_1

    在Linux中,全部都是文件,所以文件管理在Linux上格外重要,在我们学习文件管理前,我们先学习几个关于文件的命令,之后才能更好的学习文件管理. 目录 pwd命令 cd命令 列出文件内容ls 查看文 ...

  10. 【 js 基础 】关于this

    this 关键字是 Javascript 中很特别的一个关键字,被自动定义在所有函数的作用域中.this提供了一种更优雅的方式隐式"传递"一个对象的引用.今天就来说说 this 的 ...