WildCard的使用

摘要:
3.3Teacher_add_success.jsp:注意此处的T必须要大写只需输出一句话即可。4.配置struts.xml文件的内容:***/Student{1}_success.jsp/{1}_{2}_success.jsp注:此处的“*”代表所有,即Student具有的所有方法,{1}=“*”,即当“*”代表“add”时,“{1}”也就代表“add”。

一、关于WildCard:一个web应用,有成千上万个action声明,可以利用struts2提供的映射机制把多个彼此相似的映射关系简化成一个映射关系,即通配符。

1.新建类 ActionWildCard,验证通配符的方法

WildCard的使用第1张

WildCard的使用第2张

2.1添加Student需要实践的两个方法 add,deete

package cn.cqvie.wildcard;

import com.opensymphony.xwork2.ActionSupport;

public class StudentAction extends ActionSupport { public String add() { return SUCCESS; }

public String delete() { return SUCCESS; }

}

2.2添加Teacher需要实践的两个方法 add,deete

package cn.cqvie.wildcard;

import com.opensymphony.xwork2.ActionSupport;

public class TeacherAction extends ActionSupport { public String add(){ return SUCCESS; } public String delete(){ return SUCCESS; } }

3.由方法可知,需要新建两个jsp页面用于显示运行结果

3.1 Studentadd_success.jsp:注意此处的Student必须要大写

WildCard的使用第3张

里面只需输出一句话:

<body> Student Add Success! <br> </body>

3.2 Studentdelete_success.jsp:方法同上

WildCard的使用第4张

同样只需要输出一句话即可

<body> Student Delete Success!<br> </body>

3.3Teacher_add_success.jsp:注意此处的T必须要大写

WildCard的使用第5张

只需输出一句话即可。

<body> Teacher Add SUCCESS!<br> </body>

3.4 Teacher_delete_success.jsp:注意此处的T必须要大写

WildCard的使用第6张

输出一句话提示语:

<body> Teacher Delete Success! <br> </body>

4.配置 struts.xml文件的内容: ***

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="actions" extends="struts-default" namespace="/actions"> <action name="Student*" method="{1}" > <result>/Student{1}_success.jsp</result> </action> <action name="*_*" method="{2}" > <result >/{1}_{2}_success.jsp</result> </action> </package> </struts>

注:此处的“*”代表所有,即Student具有的所有方法,{1}=“*”,即当“*”代表“add”时,“{1}”也就代表“add”。也就是说“*”与“{}”内容一致。

“*_*”代表的是:第一个“*”代表“Teacher”;第二个“*”代表“add”方法或者“delete”方法。

5.修改web.xml中的mapping:需要将url-pattern原来的“*.action”改为“/*”,否则就无法找到actions对应的方法。

<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>

6. 运行/调试

将该项目部署在tomcat上——>打开浏览器——>在地址栏输入该项目的名称——>回车

WildCard的使用第7张

6.1 点击“添加学生”可以发现地址栏变化:action可以成功找到Student的“add”方法

WildCard的使用第8张

6.2 点击“删除学生”可以发现地址栏变化:action可以成功找到Student的“delete”方法

WildCard的使用第9张

6.3点击“添加老师”可以发现地址栏变化:action可以成功找到Teacher的“add”方法

WildCard的使用第10张

6.4 点击“删除老师”可以发现地址栏变化:action可以成功找到Teacher的“delete”方法

WildCard的使用第11张

7.总结、教训

1)当找到多个匹配,则没有通配符的那个胜出;

2)若指定的动作不存在,struts将会把这个URI与任何一个通配符包含“*”的动作名进行匹配;

3)需要注意的是,配置“struts.xml”文件时,相对应的“action”动作要与之一致,否则将找不到访问对象,报404错误。

4)遵循“约定优于配置”原则,可以使自己在配置时省事。比如类的首字母需要大写,而方法名需要小写。

免责声明:文章转载自《WildCard的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇修复GRUB引导故障!.NetCore,WebApi简易开发框架搭建下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle truncate、 delete、 drop区别

  相同点: 1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)...

SQL Server 触发器

SQL Server 触发器 触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。 Ø 什么是触发器 触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某...

js数组删除(splice和delete)

最近一直在写js的数组,然后就发现了很奇怪的问题,后来才发现了规律。 删除数据的一行,一般有两种方法,一个是splice,一个是delete; splice:删除了数组后,数组的长度会自动变化。用法:arr.splice(2,1)——2是数组的下标值,1 代表输出一行数据。 delete: 删除了数组后,数组的长度不会变化。 用法:delete arr[2...

Hibernate的批量处理

  Hibernate完全以面向对象的方式操作数据库,当程序员以面向对象的方式操作持久化对象时,将自动转换为对数据的操作。例如我们Session的delete()方法,来删除持久化对象,Hibernate将负责删除对应的数据记录;当我们执行持久化对象的setter方法时,Hibernate将自动转换为底层的update语句,修改数据库的对应记录。   问题...

Linux基础-配置网络、集群内主机名设定、ssh登入、bash命令、通配符(元字符)

作业一:临时配置网络(ip,网关,dns)+永久配置 设置临时网络配置: 配置IP ifcongfigens33192.168.16.177/24 (ifconfig 网卡 ip地址 /24代表它子网掩码) 配置网关 route add default gw192.168.16.177netmask255.255.255.0 添加默认网关 配置 DN...

干掉mapper.xml!MyBatis新特性动态SQL真香!

干掉mapper.xml!MyBatis新特性动态SQL真香! 当我们使用MyBatis的时候,需要在mapper.xml中书写大量的SQL语句。当我们使用MyBatis Generator(MBG)作为代码生成器时,也会生成大量的mapper.xml文件。其实从MBG 1.3.6版本以后,MyBatis官方已经推荐使用Dynamic SQL,使用这一新特...