美文网首页
struts 动态方法调用

struts 动态方法调用

作者: 吐痰高手 | 来源:发表于2017-11-08 22:21 被阅读21次

    动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多

    1.指定method属性的方法

    直接上代码
    这个是java类文件

    public class HelloWorldAction extends ActionSupport { 
        @Override
        public String execute() throws Exception{
            System.out.println("执行action");
            return "123";
        }
        public String add(){
            return SUCCESS;
        }
        public String update(){
            return SUCCESS;
        }
    }
    

    这个是struts.xml文件

    <struts>
        <package name="default" namespace="/" extends="struts-default">
            //没有method属性,就对应execute()方法
            <action name="helloworld" class="com.zyj.struts.HelloWorldAction">
                <result name="123" >/WEB-INF/MyJsp.jsp</result>
            </action>
            
            //name对应浏览器请求的url
            //method对应类中的方法名
            <action name="add" method="add" class="com.zyj.struts.HelloWorldAction">
                <result>/WEB-INF/add.jsp</result>
            </action>
            
            //name对应浏览器请求的url
            //method对应类中的方法名
            <action name="update" method="update" class="com.zyj.struts.HelloWorldAction">
                <result>/WEB-INF/up.jsp</result>
            </action>
        </package> 
    
    </struts>
    

    2.通配符方式

    struts.xml文件内容:

    <struts>
        //据说struts2.5之后必须要加strict-method-invocation="false" ,之前的版本反正我没用过;
        <package name="default" namespace="/" extends="struts-default" strict-method-invocation="false">
            //name中的*号就是通配符,name中不能有斜杠,星号是有顺序的,序列从1开始
            //要使用*号的内容,就要使用大括号{},大括号内的数字就是第几个*星号的意思
            <action name="*_*" method="{2}" class="com.zyj.struts.{1}Action">
                <result name="123" >/WEB-INF/MyJsp.jsp</result>
                <result >/WEB-INF/{2}.jsp</result>
            </action>
        </package> 
    </struts>
    

    相关文章

      网友评论

          本文标题:struts 动态方法调用

          本文链接:https://www.haomeiwen.com/subject/tedumxtx.html