• SpringMVC (四)MultiActionController


    MultiActionController  一个处理器中有多个方法方案

    第一种:默认方法名称解析器 (InternalPathMethodNameResolver)

    案例:写一个类让他继承MultiActionController类

    在这个类里面自定义两个方法

    package demo04MultiActionContrller;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.AbstractController;
    import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Created by mycom on 2018/3/18.
     */
    public class MyMultiActionController extends MultiActionController {
        public String doFirst(HttpServletRequest request,HttpServletResponse response){
            ModelAndView mv=new ModelAndView();
            mv.setViewName("first");
            return "first";
        }
    
        public ModelAndView doSecond(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
            ModelAndView me=new ModelAndView();
            me.setViewName("second");
            return me;
        }
    
    
    }

    在配置文件中

    <!--注册处理器-->
        <bean id="myMultiActionController" class="demo04MultiActionContrller.MyMultiActionController" >
            <property name="methodNameResolver" ref="methodNameResolver"></property>
        </bean>
        <!--默认解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <!--方式一-->
            <property name="mappings">
                <props>
                    <prop key="/*">myMultiActionController</prop>
                </props>
            </property>
        </bean>

    在两个页面中

    <%--
      Created by IntelliJ IDEA.
      User: mycom
      Date: 2018/3/24
      Time: 9:53
      To change this template use File | Settings | File Templates.
    --%>
    <%@page pageEncoding="utf-8" language="java" isELIgnored="false" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    我是first
    <img src="/static/images/gen6.jpg"/>
    </body>
    </html>
    <%--
      Created by IntelliJ IDEA.
      User: mycom
      Date: 2018/3/24
      Time: 9:54
      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>
    我是second
    </body>
    </html>

    访问页面的时候直接和后台方法的名称一样,就可以

    第二种:属性方法名称解析器

     在配置文件中

    <!--属性方法名称解析器-->
        <bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
            <property name="mappings">
                <props>
                    <prop key="/first">doFirst</prop>
                    <prop key="/second">doSecond</prop>
                </props>
            </property>
        </bean>

    并且将处理器中

    在页面访问时,可以直接访问上面key的值就可以

    第三种:参数方法名称解析器

    同样是在springmvc.xml中修改,

    <bean id="parameterMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
            <property name="paramName" value="actionName"></property>
        </bean>

    访问的形式是

  • 相关阅读:
    linux抓包命令tcpdump
    Linux ssh配置详解
    吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
    Python装饰器详解
    centos7 安装redis
    C# 操作Exchange 的powershell以实现邮件撤回
    C# 委托的理解和案例
    IIS10 http重定向https
    程序员修炼之道 | 不要让你的代码走上渡渡鸟的灭绝之路
    离子烫攻略
  • 原文地址:https://www.cnblogs.com/my-123/p/8639614.html
Copyright © 2020-2023  润新知