打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Struts2的struts.xml中配置及通配符的使用
         用Struts2很长时间,关于配置文件struts.xml中通配符的使用还是第一次真正用在项目中(可能之前都是一些小项目吧)。对于它的使用还真是现在才明白一些,以一个简单的例子做示范.
        在一个普通的小型项目中可能会,写很多个配置文件,然后include进struts.xml文件中,这是没有通配符的时候的用法。
         对于一个比较大的项目来说,从项目本身的庞大性、项目开发人员的编码及开发风格的等的不同性,再加上项目后期的维护性,如果也是通过为每一个模块(或功能)写这样的配置文件,可以想象一下,从项目开始到项目进入维护阶段,需要些多少个配置文件,而且随着项目功能的逐渐完善,这一过程能保证我们的配置文件是一成不变,能保证每个人在配置文件上不出一点差错吗......所以,在大的项目上,经理都会采用通配符来约定开发模式,规定项目成员必须要怎么配置从而达到简化配置、节约时间的目的。
     //可以通过传过来的url访问路径,来确定类名及方法
        <action name="*/*/*" method="{3}"   class="com.company.xxx.{1}.action.{2}Action">
             
                     <result name="suc" type="direct">/{3}.jsp</result>
      
       </action>
例如,根据上面的通配符的规定,传一个 “ system/user/login.do ” 时,这时会这样匹配===>
        1、name中的第一个 " * " 匹配class所在的包,第二个 " * " 匹配class中的指定Action,因此,完整的class = "com.company.xxx.system.action.userAction"
        2、而第三个 " * " 则匹配 method 和 result中返回的页面, 因此 ,完整的 method="login" ,result标签中返回的页面是 /login.jsp
 
        这样使用通配符,那么在项目的过程中,就不用为每一个action配置了,开发人员只需要按照这样的格式给定就可以访问到,减少了很多配置工作。在使用通配符时要注意的几点:
       a、name属性中使用多个通配符时,不能将多个 " * " 号不加分割的放在一起,因为struts2不知道怎样划分每个星号。 因此,使用多个 "*" 时一定要有一个分隔符,
            "/" 或 "_"(如user_login.do) 都可以。
       b、与通配符匹配的值可以用记号{n}来访问,n是1~9的整数,第一个(*)星号就是{1},第二个就是{2},依次类推;注意当用{0}表示时代表整个请求url
            【如某个url是login.do(*/*这样的匹配),而返回页面就可以这样{0}.jsp,最后返回的页面就应该是login.jsp
       c、对于struts2中使用通配符和不使用,二者在请求原理上还是不同的。
            当用户给出一条url了以后,struts2首先会遍历通配符以外所有的请求配置,如果找到对应匹配的url则直接进入对应的action
            如果未找到,才会去遍历通配符,若有与通配符相匹配的,再进入到此匹配的action。
            所以,使用通配符的要比未使用通配符的要慢。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
struts2:struts.xml配置文件详解
在eclipse中进行Struts2项目的配置
Struts2的配置文件——struts.xml
struts2.x环境配置步骤
Struts2+Spring集成合并
struts2最简单的配置(不信你来看看)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服