zoukankan      html  css  js  c++  java
  • WildCard的使用

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

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

    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必须要大写

    里面只需输出一句话:

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

    3.2 Studentdelete_success.jsp:方法同上

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

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

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

     

    只需输出一句话即可。

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

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

    输出一句话提示语:

    <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*" class="cn.cqvie.wildcard.StudentAction" method="{1}" >        <result>/Student{1}_success.jsp</result>     </action>     <action name="*_*" class="cn.cqvie.wildcard.{1}Action" 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上——>打开浏览器——>在地址栏输入该项目的名称——>回车

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

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

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

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

    7.总结、教训

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

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

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

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

  • 相关阅读:
    《魏坤琳的科学育儿宝典》笔记
    大千世界中,万物皆有时节
    心里健康基本要素
    不带评论的观察是人类智力的最高形式
    《七律·人民解放军占领南京》
    《最好的防御就是进攻》-- 向任总汇报无线业务会议纪要 2013年9月5日
    《深淘滩,低作堰》-- 任正非在运作与交付体系奋斗表彰大会上的讲话 2009年4月24日
    《市场经济是最好的竞争方式,经济全球化是不可阻挡的潮流》-- 任正非在财经系统表彰大会上的讲话 2009年3月24日
    《开放、妥协与灰度》-- 任正非在2009年全球市场工作会议上的讲话 2009年1月15日
    《让青春的火花,点燃无愧无悔的人生》-- 任正非在无线产品线奋斗大会上的讲话纪要 2008年5月31日
  • 原文地址:https://www.cnblogs.com/Believer/p/5622192.html
Copyright © 2011-2022 走看看