zoukankan      html  css  js  c++  java
  • 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>

    访问的形式是

  • 相关阅读:
    2014-5-28 技能
    Python的包管理工具Pip
    vi 命令 使用方法
    oracle实例名,数据库名,服务名等概念差别与联系
    自己动手写操作系统--个人实践
    D3DXMatrixMultiply 函数
    port大全及port关闭方法
    原型模式
    ExecuteScalar
    第三章_JSP
  • 原文地址:https://www.cnblogs.com/my-123/p/8639614.html
Copyright © 2011-2022 走看看