郑州甲醛检测机构cma:SpringMVC MultiActionController的使用-最简化教程

来源:百度文库 编辑:九乡新闻网 时间:2024/07/14 02:40:47
Step 1:配置web.xml

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    springapp

    
        springMVC
        
            org.springframework.web.servlet.DispatcherServlet
        

        1
    


    
        springMVC
        /page/*
    




servlet-mapping定义所有以/page/开头的url请求都会被spring 的DispatcherServlet处理转发。默认情况下DispatcherServlet会读取-servlet.xml文件的配置信息初始化,该文件中urlMapping的定义决定当前请求转发给哪个controller来处理。
Step2:定义/WEB-INF/springMVC-servlet.xml




    
            class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver" />

    
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        
            org.springframework.web.servlet.view.JstlView
        
    

    
        
            
        
    

            class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        
            
                controller
            

        
    


urlMapping定义/controller/开头的url请求由名字为controller的控制器来处理,因为是多动作处理器,所以要定义MethodNameResolver来告诉springMVC应该调用controller的哪个方法,这里用的是InternalPathMethodNameResolver,该方法名解释器会把整个URL中最后一个"/"和最后一个"."之间的部分作为要调用的方法名。
Step3:定义controller类并继承MultiActionController
package com.controller;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

public class IndexController extends MultiActionController {

    public ModelAndView method1(HttpServletRequest request,
            HttpServletResponse respnose) throws ServletException, IOException {
        Map model = new HashMap();
        model.put("message", "你调用的是方法1");
        return new ModelAndView("/index.jsp", "model", model);
    }

    public ModelAndView method2(HttpServletRequest request,
            HttpServletResponse respnose) throws ServletException, IOException {
        Map model = new HashMap();
        model.put("message", "你调用的是方法2");
        return new ModelAndView("/index.jsp", "model", model);
    }
}

通过配置文件,访问上面这个controller中某个方法的url即为:localhost:8080/page/controller/方法名
Step4:/index.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%>







因为InternalPathMethodNameResolver方法名解释器会把整个URL中最后一个"/"和最后一个"."之间的部分作为要调用的方法名,所以你可以在这个URL后面加任意文件格式的后缀,比如:
localhost:8080/page/controller/method1.jsp

localhost:8080/page/controller/method2.html
很爽吧,和真实的URL地址一样。
另:开发环境:MyEclipse5.0M2+tomcat5.5
需要用到spring.jar和jstl.jar两个包。
附:源代码下载