Struts2 使用method 或者 通配符 *

1.我们可以在struts.xml的action中使用同一个类,创建不同的method属性,同时配备不同的方法。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="test" extends="struts-default">
        <action name="login" class="test.TestAction" method="login">
            <result name="success">success.jsp</result>
            <result name="fail">fail.jsp</result>
        </action>
        <action name="register" class="test.TestAction" method="register">
            <result name="success">success.jsp</result>
            <result name="fail">fail.jsp</result>
        </action>
    </package>
</struts>

在类test.TestAction中,实现对应的method

public String register() throws Exception {          
    return "success";                                
}                                                    

public String login() throws Exception {             
    return "success";                                
}                                                    

2.我们可以使用不同的class,同时使用相同的method,这个就不用代码演示了,因为这个是在不同的class里实现不同的method,上面说的相同只是指一个名字。

3.我们可以使用通配符*。先给出不使用* 的情况。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="test" extends="struts-default">
        <action name="login" class="test.TestAction" method="login">
            <result name="success">success.jsp</result>
            <result name="fail">fail.jsp</result>
        </action>
        <action name="register" class="test.RegisteAction" method="register">
            <result name="success">success.jsp</result>
            <result name="fail">fail.jsp</result>
        </action>
    </package>
</struts>

使用通配符:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="test" extends="struts-default">
        <action name="*" class="test.TestAction" method="{1}">
            <result name="success">success.jsp</result>
            <result name="fail">fail.jsp</result>
        </action>
        <action name="*" class="test.RegisteAction" method="*">
            <result name="success">success.jsp</result>
            <result name="fail">fail.jsp</result>
        </action>
    </package>
</struts>

其实乍看起来没啥,但是在Struts2 中,定义Action的name属性时使用* 代表一个或者多个任意字符串,接下来就可以在class,method,<result> 子元素使用{N} 形式的表达式,代表前面第N个星号所匹配的字串。

猜你喜欢

转载自blog.csdn.net/saywhat_sayhello/article/details/80041762