Struts2学习②--动态方法调用和通配符设置

       将struts项目部署到tomcat下,运行时,会首先找到struts.xml文件,匹配namespace,然后匹配action的name,调用执行对应的动作,如果动作是一个类的话,类一般要继承ActionSupport类,里面定义返回值为String的方法。动作执行时,可以指定要执行的方法,指定方式是:method="方法名",也可以动态指定,则是不通过method指定方法,而是在访问时在路径中写明方法,“!方法名“,注意,代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

     <constant name="struts.devMode" value="true" /><!-- 开发模式 -->
     <package name="user" namespace="/user" extends="struts-default">
            
        <action name="userAdd" class="com.you.learn.UserAction" method="add">
            <result>
              /user_add_success.jsp
            </result>
          </action>  
            <action name="user" class="com.you.learn.UserAction">
            <result>/user_add_success.jsp</result>
            </action>
        
    </package>
    
    <!-- Add packages here -->

</struts>


访问路径为:http://localhost:8080/learnStruts2_02/user/user!add
方法调用也可以通过通配符匹配的方式,通过输入的name中的*匹配,第一个*内容和下面指定的{1}相匹


配额,第二个*则和下面指定的{2}匹配,这样的话动作中的方法名必须按提前约定好的来,体现出了“


约定优于配置”。代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    
     <constant name="struts.devMode" value="true" /><!-- 开发模式 -->
     <package name="actions" namespace="/actions" extends="struts-default">

      
        <action name="Student*" class="com.you.learn.StudentAction" method="{1}">
            <result>
               /Student{1}_success.jsp
            </result>
        </action>
        
        <action name="*_*" class="com.you.learn.{1}Action" method="{2}">
          <result>/{1}_{2}_success.jsp</result>
        </action>
    </package>
    
     
    <!-- Add packages here -->

</struts>

其中jsp名称分别为:Studentadd_success.jsp、Studentdelete_success.jsp、Teacher_add_success.jsp、Teacher_delete_success.jsp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值