zoukankan      html  css  js  c++  java
  • SpringMVC 控制器写多个方法(非注解方式)

    Controller类有两种方法

    1,implements Controller(实现Controller接口)

    2,extends MultiActionController(继承 MultiActionController)

    但是实现接口有缺陷,只能写一种方法(handleRequest),比如完成某一业务对象的增,删,改,查,都属于一类相关的业务。把一类相关的操作分布到不同的类去完成,违返“高内聚”的设计原则。所以一般都会采用第二种方法。

    springmvc-servlet.xml

    <?xml version="1.0" encoding="UTF-8"?> 
    <beans xmlns="http://www.springframework.org/schema/beans" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xmlns:context="http://www.springframework.org/schema/context" 
           xmlns:mvc="http://www.springframework.org/schema/mvc" 
           xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd 
           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> 
        <mvc:annotation-driven />
        <context:component-scan base-package="com" /> 
        <bean id="irViewResolver"
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/page/" />
            <property name="suffix" value=".jsp" />
        </bean>
        
        <!--  MultiAction -->
        <!-- 引入多视图控制 -->
        <bean id="paramMethodResolver"
            class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
            <property name="paramName" value="method">
            </property>
        </bean>
        <bean id="simpleUrlHandlerMapping"
            class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <prop key="/testinterceptor">testInterceptorController</prop>
                </props>
            </property>
        </bean>
        <!-- 将多视图控制paramMethodResolver注入到自己的控制器--> 
        <bean id="testInterceptorController" class="com.TestInterceptorController">
            <property name="methodNameResolver" ref="paramMethodResolver"></property>
        </bean>
        
    </beans>

    控制器:

    package com;
    
    import java.util.Date;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
    
    @SuppressWarnings("deprecation")
    public class TestInterceptorController extends MultiActionController {
    
        public String show(HttpServletRequest request, HttpServletResponse response){
            request.setAttribute("date", new Date());
            return "show";
        }
    }

    *这里要用request进行传值

    输入访问:......?method=show

  • 相关阅读:
    [Swift]LeetCode300. 最长上升子序列 | Longest Increasing Subsequence
    备忘录模式之C++实现
    leecode 题解 || Merge k Sorted Lists 问题
    数学三大危机
    singlefile.py
    Data Url生成工具之HTML5 FileReader实现
    算法题:打印1到最大的n位数
    java.lang.NoClassDefFoundError: org/apache/commons/lang/xwork/StringUtils
    hdu 1181 变形课
    postgis经常使用函数介绍(一)
  • 原文地址:https://www.cnblogs.com/Junsept/p/7412749.html
Copyright © 2011-2022 走看看