Sturts2 (2)DMI

  1. DMI(动态方法调用),就是实现在一个Action里面实现多个控制处理逻辑,有一下几种方法可以实现,具体讲解穿插在代码中
    1. 要使用DMI,先要在Struts.xml中将动态方法调用开启,即在Struts.xml的struts标签下加上
       <constant name="struts.enable.DynamicMethodInvocation" value="true"/>

       

  2. 新建一个java类充当Action

    package action;
    
    
    import static com.opensymphony.xwork2.Action.*;
    /**
     * Demo class
     *
     * @author lin
     * @date 2018/11/9
     */
    public class TestAction {
        private String name;
    
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String execute(){
            String standardName = "a";
            String name = getName();
            if( standardName.equals(name)){
                return SUCCESS;
            }else {
                return ERROR;
            }
        }
    }
    

     

  3. 配置Struts.xml,这是 最关键的一步,先贴代码

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
            "http://struts.apache.org/dtds/struts-2.5.dtd">
    
    <struts>
        <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
         <package name="test" extends="struts-default">
            <action name="*_Support" class="action.TestAction" method="{1}">
                <result name="success">ok!.jsp</result>
                <result name="error">error.jsp</result>
                <allowed-methods>execute</allowed-methods>
            </action>
        </package>
    </struts>

     

    1. action的名字为*_action,就是说在jsp页面中action的对象为a_action,b_action都行,他们对应执行的方法是Action里的a方法,b方法了。 

    2. 这里只有execute方法,将他放在allowed-methods里,这样jsp就可以访问到这个方法了,如果有多个方法的话,用逗号隔开。

  4. jsp页面,将表单内容交到execute_Support这个action里去,那么就会执行action里的execute方法了。

    <%@ taglib prefix="s" uri="/struts-tags" %>
    <%--
      Created by IntelliJ IDEA.
      User: 11955
      Date: 2018/11/9
      Time: 15:08
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body/>
        <s:form action="execute_Support" method="POST">
          <s:textfield name="name"/>
          <s:submit name="submit"/>
        </s:form>
      </body>
    </html>
    

     

  5. 整个项目的结构                                                                                                       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值