• springmvc 多方法访问


    (1)首先控制器要继承MultiActionController这个类,在这个类的实现方法中要有两个必要的参数HttpServletRequest和HttpServletResponse,

    package test.spring;
    
    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 MultiAction extends MultiActionController{
    
    	public ModelAndView add(HttpServletRequest request,HttpServletResponse response){
    		System.out.println("add");
    		String str = "add";
    		return new ModelAndView("ok","str",str);
    		}
    	
    	public ModelAndView update(HttpServletRequest request,HttpServletResponse response){
    		System.out.println("update");
    		String str = "update";
    		return new  ModelAndView("ok","str",str);
    	}
    
    
    //	public ModelAndView handleRequest(HttpServletRequest arg0,
    //			HttpServletResponse arg1) throws Exception {
    //		System.out.println("test");
    //		return new ModelAndView("ok","str","handleRequest");
    //	}
    	
    }
     

    在WEB-INF/jsp下编写一个用来跳转的JSP页面 ok.jsp 


    <%@ page language="java"  pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    
    <title>Insert title here</title>
    </head>
    <body>
    	${str}你好
    </body>
    </html>



    (2)在配置文件中要配置一个paramMethodResolver的BEAN组件,

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

    其中的 paramName的值是在访问的地址栏中的参数,可以自己定义(看最后,说的有)

    (3)

    定义自己写的BEAN的时候要给他传递一个参数 methodNameResolver,也就是刚才定义的解析多方法的BEAN

    <bean id="multiController" class="test.spring.MultiAction">
    				<property name="methodNameResolver" ref="paramMethodResolver"></property>
    			</bean>
    (4)定义handlerAndMapping 让请求可以找到对应的BEAN组件

    <bean id="handlermapping" 
    			class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    				<property name="mappings">
    					<props>
    						<prop key="multiAction.do">multiController</prop>
    					</props>
    				</property>
    			</bean>
    (5)定义 viewResolver组件返回视图

    <bean id="viewResolver"
    			class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    				<property name="prefix" value="/WEB-INF/jsp/"></property>
    				<property name="suffix" value=".jsp"></property>
    			</bean>
    (6)web.xml配置

     <!-- 控制器配置 -->
      <servlet>
      	<servlet-name>springmvc</servlet-name>
      	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      	<init-param>
      	<param-name>contextConfigLocation</param-name>
      	<param-value>classpath:applicationContext.xml</param-value>
      </init-param>
      </servlet>
      
      
      
      <servlet-mapping>
      	<servlet-name>springmvc</servlet-name>
      	<url-pattern>*.do</url-pattern>
      </servlet-mapping>
      




    (7)启动服务器之后在浏览器地址栏输入地址  

                             http://127.0.0.1:8080/testspring/multiAction.do?action=add 会访问控制器中的add方法,

                             http://127.0.0.1:8080/testspring/multiAction.do?action=update 访问控制器中的update方法。


    自己第一次写的,测试通过,如果有问题或者什么建议,可以给我留言,共同进步!

  • 相关阅读:
    selenium+phantomjs报错:Unable to find a free port的分析和解决
    hadoop集群搭建
    虚拟机安装CentOS7 Minimal、jdk和hadoop
    Javascript学习笔记-一些关键点
    隐藏 Win10 中的3D对象、文档、音乐、图片、视频、下载、桌面7个文件夹
    白话网页的网络性能
    (转)“拿人钱财,与人消灾”,这才是员工含义的本质
    JS 小工具 MYSQL WHERE IN条件 去掉换行符(列转行)
    PHP 基于redis的分布式锁
    PHP 将json的int类型转换为string类型 解决php bigint转科学计数法的问题
  • 原文地址:https://www.cnblogs.com/huangt/p/3667164.html
Copyright © 2020-2023  润新知