Struts2学习笔记—通配符

上节我们了解了Struts2学习笔记—DMI,DMI又方便之处,也有不足之处,今天我们就看一下Struts2学习笔记—通配符,



这里面有*代表所有;



index.jsp


<%@ page language="java" import="java.util.*" 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">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
  </head>
  
  <body>
   <a href="useruserhello">Struts2</a>
   
    <h1>约定高于配置.</h1>
    <a  href="Struts_add">调用add方法</a>
    <a  href="Struts_dell">调用dell方法</a>
  </body>
</html>



struts.xml


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3.32//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" namespace="/"  extends="struts-default">
<action name="user*" class="com.tang.Struts2Action" method="{1}">
<result name="userhello">/HelloWorld.jsp</result>
</action>


<!-- 约定高于配置. -->
<action name="*_*"  class="com.tang.{1}2Action" method="{2}">
           <result name="{2}">/{2}.jsp</result>
     </action>
</package>
</struts>

这里我要说一下这里的符号(*_*),如果是第一个*号取值,那么就是{1},如果是第二个*取值就是{2},可以得出结论是{数值},取得是*所在的位置,比如说struts_add,那么{1}就代表了struts,{2}就代表add,这里*_*_*可以一直加。



Struts2Action.java


public String userhello(){

return "userhello";
}

public  String  add(){


 return "add";


}


public  String dell(){


 return "dell";


}


那么这样就是一个简单的通配符的例子,


总结一下:


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

  2)通配符映射规则

     ① 若找到多个匹配, 没有通配符的那个将胜出 :即,当

       ② 若指定的动作不存在, Struts 将会尝试把这个 URI 与任何一个包含着通配符 * 的动作名及进行匹配

     ③ 被通配符匹配到的 URI 字符串的子串可以用 {1}, {2} 来引用. {1} 匹配第一个子串, {2} 匹配第二个子串…

     ④ 若 Struts 找到的带有通配符的匹配不止一个, 则按先后顺序进行匹配

     ⑤* 可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用 \.




猜你喜欢

转载自blog.csdn.net/qq_35449428/article/details/78293350
今日推荐