1. 程式人生 > >Struts2_萬用字元對映

Struts2_萬用字元對映

一個 Web 應用可能有成百上千個 action 宣告. 可以利用 struts 提供的萬用字元對映機制把多個彼此相似的對映關係簡化為一個對映關係

萬用字元對映規則

  • 若找到多個匹配, 沒有萬用字元的那個將勝出
  • 若指定的動作不存在, Struts 將會嘗試把這個 URI 與任何一個包含著萬用字元 * 的動作名及進行匹配
    <a href="useraction-save">save</a>
    <a href="useraction-update">update</a>
    <a href="useraction-delete"
>delete</a> <a href="useraction-query">query</a>
package bao;

public class nidaye {
    public String useraction_save() {
        System.out.println("save");
        return "save-success";
    }
    public String useraction_update() {
        System.out.println("update");
        return
"update-success"; } public String useraction_delete() { System.out.println("delete"); return "delete-success"; } public String useraction_query() { System.out.println("query"); return "query-success"; } }
  • 被萬用字元匹配到的 URI 字串的子串可以用 {1}, {2} 來引用. {1}
    匹配第一個*, {2} 匹配第二個*
        <action name="*-*" class="bao.nidaye"
            method="{1}_{2}">

            <result name="{2}-success">/success.jsp</result>

        </action>
  • {0} 匹配整個 URI
  • Struts 找到的帶有萬用字元的匹配不止一個, 則按先後順序進行匹配
  • * 可以匹配零個或多個字元, 但不包括 / 字元. 如果想把 / 字元包括在內, 需要使用 **. 如果需要對某個字元進行轉義, 需要使用 \.