struts2——通配符
struts2的配置文件是 struts.xml.. 在这个配置文件里面可以使用通配符..其中的好处就是,大大减少了配置文件的内容..当然,相应付出的代价是可读性..
使用通配符的原则是 约定高于配置.
在项目中,我们有很多的命名规则是约定的...我们使用通配符那就必须有一个统一的约定.否则通配符将无法成立
看下面的例子.
(1)先看我们的action配置
1 <package name="user" extends="struts-default" namespace="/"> 2 <action name="user_*" class="com.test.action.UserAction" method="{1}"> 3 <result>/user_{1}.jsp</result> 4 </action> 5 </package>
第一个带"*" 表示的是 后面匹配任意字符...这个很容易理解
{1}表示的是第一个"*"的内容...注意,这里的大括号,比如,如果是user_add .那么{1}就是表示 add ..
当然,这里只有一个"*".你可以有两个,甚至三个四个..比如这样写 *_* 这样就是两个"*" .那么我们也可以用{1},{2}来分别的表示他们.
(2) 对应的action 内容
1 package com.test.action; 2 import com.opensymphony.xwork2.ActionSupport; 3 @SuppressWarnings("serial") 4 public class UserAction extends ActionSupport 5 { 6 public String add() 7 { 8 return SUCCESS; 9 } 10 public String delete() 11 { 12 return SUCCESS; 13 } 14 public String update() 15 { 16 return SUCCESS; 17 } 18 public String select() 19 { 20 return SUCCESS; 21 } 22 }
因为是举例子,所以每个方法里面都没实现内容.
(3) 其他就是几个jsp页面.
其中 user_*.jsp页面没什么好说的,就是显示一句话.比如user_add.jsp就是显示 "这是添加页面" 其他的类似.就是为了让我们看到已经跳转到对应的页面.
index.jsp写一下
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head><base href="<%=basePath%>"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body><a href="user_add.action">添加页面</a><br><a href="user_delete.action">删除页面</a><br><a href="user_update.action">修改页面</a><br><a href="user_select.action">查找页面</a><br> </body> </html>
总结一下,
大家可以看到,配置文件里面,只有三句话就将增删改查四个操作全部配置好了....这就是通配符的作用.但是,我们也可以看到,对应的命名规则的约定也非常的苛刻...
最后需要注意的一点是匹配的优先权
(1)如果struts.xml里面有对应的action name .就算它有其他通配符匹配的,都优先对应完全相同的.
比如 有一个 action name 是 "user_add" 还有一个是 "user_*" .现在,来一个请求是 "user_add.action " .那么,它会优先匹配"user_add " ..其实,这个很好理解..
(2)如果一个action name对应于两个带通配符的action name 那么,需要看这个配置谁在前面.它匹配写在前面的
比如 有一个 action name 是 "*_*" 还有一个是 "user_*" .现在,来一个请求是 "user_add.action " .那么,它会优先匹配写在前面的...
任何带"*"的action name 优先权都是一样的...不是说带一个"*"的优先权就比带两个"*" 的高.
引自:http://jingbo2759.blog.163.com/blog/static/9837531520099109488860/
转载于:https://www.cnblogs.com/20gg-com/p/6076874.html
struts2——通配符相关推荐
- struts2通配符_基于Struts2框架的名片管理系统
本篇博文将分享一款基于Struts2框架的名片管理系统,JSP引擎为Tomcat9.0,数据库采用的是MySQL5.5,集成开发环境为Eclipse IDE for Java EE Developer ...
- Struts2通配符映射/Struts action name=/*/* method={2} class=com.jxc.action.{1}Action result
struts2的关于method="{1}"意思详解 <action name= "Login_* " method= "{1} &qu ...
- struts2 通配符简化配置
在struts映射中反复出现的模式 动作方法 描写叙述 下一个动作方法 add 为save准备网页 save save 提交INSERT list edit 为update准备网页 update up ...
- android基础的博客,【复习】Android基础
网络互通1.同网段互通-交换 终端 网络 交换机 多层交换机 原理  ... temp1 = 1.5 print " ...
- java 运行窗口_eclipse java 底部的那个显示运行结果的框被我一不小心关掉了,如何打开...
展开全部 打开方法:点击工具栏上的window输入reset perspective即可或者点击windows->show view->console 初学者可62616964757a68 ...
- [JavaWeb基础] 018.Struts2 Action通配符使用
Struts2中有一个很牛逼的action通配符,可以用来简化action配置,以我们将要讲解的案例来说,如果我们要对一个学生信息进行增加,删除,修改,那么按照原来的做法,我们需要写3个Action来 ...
- 【struts2】action中使用通配符
在以前的学习中,<action>元素的配置,都是用明确的配置,其name.class等属性都是一个明确的值.其实Struts2还支持class属性和method属性使用来自name属性的通 ...
- Struts2的2.5.10版本找不到StrutsPrepareAndExecuteFilter过滤器 与 struts.xml文件通配符异常问题
一.异常描述: 今天在整合ssh的时候,在配置Struts2框架之后,启动之后,项目报错抛异常:主要异常信息如下: java.lang.ClassNotFoundException: org.apac ...
- Struts2的通配符配置方式
Struts2的Action类很有意思,你可以使用3种方式来实现具体的Action类: 让你的Action类继承自ActionSupport类(项目中最常用这种方式,因为ActionSupport类中 ...
最新文章
- R语言与数据分析(9)R与Excel
- C# 类、对象、方法和属性详解(重新排版,页面整洁)
- [转]svn常用命令
- mysql 一对多 join_Mysql中FIND_IN_SET与JOIN在一对多关系查询时的优劣
- 修改Typora的快捷键【markdown软件】
- [2020 年百度之星·程序设计大赛 - 复赛] Battle for Wosneth
- 云计算平台构建与实验设计
- 软件单元测试方法,单元测试的基本测试方法
- 如何将F4V格式的视频转换成MP4格式
- 购物车一个Adaper,可以删除,全选反选,数量加减
- 缓存行填充与@sun.misc.Contended注解
- katacontainers v2编译
- android 换肤(1)——插件式无缝换肤(解析鸿洋大神的换肤流程)
- 神经网络冻结层,固定参数
- 阅文集团的盛世危机才刚刚开始
- 懂得选择,学会放弃..
- 13岁男孩偷开公交车 连撞12车撞断电线杆
- SWPU Python123作业题汇总(持续更新)
- 讯飞云论坛的网页设计demo
- 流量监控服务器应该位置在哪里,在服务器查看流量监控