Struts2-015-通配符映射
来源:互联网 发布:linux 磁盘性能测试 编辑:程序博客网 时间:2024/05/19 17:57
概述
- 一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系
- 通配符映射规则
- 若找到多个匹配, 没有通配符的那个将胜出
- 若指定的动作不存在, Struts 将会尝试把这个 URI 与任何一个包含着通配符 * 的动作名及进行匹配
- 被通配符匹配到的 URI 字符串的子串可以用 {1}, {2} 来引用. {1} 匹配第一个子串, {2} 匹配第二个子串…
- {0} 匹配整个 URI
- 若 Struts 找到的带有通配符的匹配不止一个, 则按先后顺序进行匹配
- 可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用 .
测试代码
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 配置请求后缀名 --> <constant name="struts.action.extension" value="do,,action"/> <!-- 配置包信息 --> <package name="default" extends="struts-default"> <!-- 4.通配符下存在多个匹配,按顺序匹配 --> <action name="UserAction-up*" class="top.itcourse.wildcard.UserAction" method="test"> <result name="test-success">test.jsp</result> </action> <!-- 说明: 1.在action的统配部分使用* 2.在后面需要使用统配的实际值的时候,使用{x} (x表示第几个*,{0}表示整个uri) 3.若被多个匹配,没有通配符的比用通配符的优先 4.通配符下存在多个匹配,按顺序匹配 5.想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用 \. --> <!-- 1.在action的统配部分使用* --> <action name="UserAction-*" class="top.itcourse.wildcard.UserAction" method="{1}"> <!-- 2.在后面需要使用统配的实际值的时候,使用{1} --> <result name="{1}-success">success.jsp</result> </action> <!-- 3.若被多个匹配,没有通配符的比用通配符的优先 --> <action name="UserAction-save" class="top.itcourse.wildcard.UserAction" method="test"> <result name="test-success">test.jsp</result> </action> </package></struts>
UserAction.java
package top.itcourse.wildcard;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.interceptor.ServletRequestAware;public class UserAction implements ServletRequestAware { private HttpServletRequest request; public String test() { System.out.println("测试一下"); return "test-success"; } public String save() { System.out.println("保存~~~"); request.setAttribute("result", "save"); return "save-success"; } public String update() { System.out.println("修改~~~"); request.setAttribute("result", "update"); return "update-success"; } public String delete() { System.out.println("删除~~~"); request.setAttribute("result", "delete"); return "delete-success"; } public String query() { System.out.println("查询~~~"); request.setAttribute("result", "query"); return "query-success"; } @Override public void setServletRequest(HttpServletRequest request) { this.request = request; }}
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>2017</title> <!-- 导入jQuery文件 --> <script src="js/jquery-1.10.1.js" type="text/javascript" charset="utf-8"></script> <!-- script书写位置 --> <script type="text/javascript"> </script> </head> <body> <a href="UserAction-save">保存</a> <br /> <a href="UserAction-delete">删除</a> <br /> <a href="UserAction-query">查询</a> <br /> <a href="UserAction-update">修改</a> </body></html>
效果
其它
- 源码下载
关注下方公众号,回复:struts2_course.code
欢迎加入交流群:451826376
更多信息:www.itcourse.top
阅读全文
0 0
- Struts2-015-通配符映射
- struts2通配符映射
- struts2通配符映射
- struts2 通配符映射
- Struts2通配符映射
- struts2的通配符映射
- Struts2通配符映射
- Struts2通配符映射
- struts2中的通配符映射
- Struts2使用8 -- 通配符映射
- struts2学习dem003_通配符映射
- struts2.5通配符映射问题
- Struts2(五)---通配符映射
- struts2学习:配置篇之通配符映射
- struts2学习:配置篇之通配符映射
- Struts2通配符映射及动态方法调用
- struts2学习:配置篇之通配符映射
- Rhyme/ Struts2 通配符映射出现解决方法
- 使用Redis实现分布式锁及其优化
- 打包aar遇到的坑
- PHP中flush()与ob_flush()的区别
- 如何正确地向赵薇索赔
- 2017BTAwards「潜在价值年度投资机构」榜单征集
- Struts2-015-通配符映射
- springMvc 对多个视图后缀解析
- cab包制作使用
- 学习资料
- java接口测试
- SpringMVC学习指南笔记之项目发布
- STL2 各个容器的底层数据结构
- Android.xml--Context详解
- 通过值传递参数和通过引用传递参数之间的差异 (Visual Basic)