Struts2学习笔记——struts.xml配置文件中通配符详解

在struts.xml中,我们可能对普通的配置使用比较多,什么通配符、结果返回Json格式等,这种不具有普遍性,并不是每一个开发者每一个项目都用到的东西。例如下面这个配置我们使用的比较多:

<package name="finance" extends="struts-default">
    <action name="login" class="com.fyw.user.action.LoginAction" method="login">
        <result name="success">/success.jsp</result>
        <result name="error">/error.jsp</result>
    </action>
</package>

这是一个最基本的配置,对于struts.xml的所有配置详解我会后续的文章中进行介绍,这里我们只关注struts.xml中通配符的使用方法,例如:

<package name="finance" extends="struts-default">
    <action name="*/*/*" class="com.fyw.{1}.action.{2}Action" method="{3}">
        <result name="success">/{3}.jsp</result>
        <result name="error">/{0}.jsp</result>
    </action>
</package>

当一个没有用过通配符的开发者看到这段配置文件后会一头雾水,我第一次看到时也是这种感觉,下面我来详细介绍下这几个数字的含义。
使用通配符我们可以通过传过来的URL访问路径来确定类的名及方法甚至返回的页面路径及页面名称。
例如:我们传一个order/user/login.do时,第一个和{1}匹配,第二个和{2}皮牌,第三个*和{3}匹配,{0}表示整个请求的url,因此上面的配置文件就变成了我们熟悉的:

<package name="finance" extends="struts-default">
    <action name="*/*/*" class="com.fyw.order.action.UserAction" method="{login}">
        <result name="success">/login.jsp</result>
        <result name="error">/orderuserlogin.jsp</result>
    </action>
</package>

注意:使用多个*时候中间一定要有分隔符,一般用”/”或者”_”来表示
通配符的优点:
减少了开发人员的配置工作
缺点:
1、在struts2中使用通配符与否的请求过程是不同的,当用户请求URL后,struts2首先会遍历通配符以外的所有配置,如果找到了对应的URL则直接进入action,如果没有找到才会去 遍历通配符,如果有相匹配的通配符,再进入到相对应的action,所以,使用通配符要比未使用通配符要慢。
2、开发人员要特别小心配置,如果对应不起来或者不清楚对应规则很容易出错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值