`

关于springmvc中Matrix Variables的用法

 
阅读更多

版本spring4.x

注解@MatrixVariable可以将键值对写到路径中映射作为controller中的方法参数,使用前需要配置

1.RequestMappingHandlerMapping中属性removeSemicolonContent值为true

<bean
	class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
	<property name="order" value="1"></property>
	<property name="removeSemicolonContent" value="true"></property>
</bean>

 

 

2.配置开启

<mvc:annotation-driven enable-matrix-variables="true"/>

 

实例如下

	// GET /m1/owners/42;q=11;r=12/pets/21;q=22;s=23 (官方示例有问题,此处无法找到)
	// GET /m1/owners/q=11,12/pets/21;q=22;s=23 
	// (output matrixVars:{q=[11, 12, 22], s=[23]} petMatrixVars:{q=[22], s=[23]})
	// 注意:如果/owners/***/pets/21;q=22;s=23中,***部分如果出现;(分号)就会找不到方法
	@RequestMapping(value = "/m1/owners/{ownerId}/pets/{petId}", method = RequestMethod.GET)
	public String findPet(@MatrixVariable Map<String, String> matrixVars,
			@MatrixVariable(pathVar = "petId") Map<String, String> petMatrixVars) {
		System.out.println(matrixVars+":matrixVars");
		System.out.println(petMatrixVars+":petMatrixVars");
		return "user_list";
	}

	// GET /pets/42;q=11;r=22 (output petId:42 q:11)
	// GET /pets/q=11 (output petId:q=11 q:11)
	@RequestMapping(value = "/m2/pets/{petId}", method = RequestMethod.GET)
	public String findPet2(@PathVariable String petId, @MatrixVariable int q) {
		System.out.println("petId:"+petId);
		System.out.println("q:"+q);
		return "user_list";
	}
	
	// GET /m3/owners/42;q=11/pets/21;q=22 (此处官方示例有点问题,这个路径无法找到方法)
	// GET /m3/owners/q=4/pets/q=21	
	@RequestMapping(value = "/m3/owners/{ownerId}/pets/{petId}", method = RequestMethod.GET)
	public String findPet3(@MatrixVariable(value = "q", pathVar = "ownerId") int q1,
			@MatrixVariable(value = "q", pathVar = "petId") int q2) {
		System.out.println("q1:"+q1); // q1:4
		System.out.println("q2:"+q2); // q2:21
		return "user_list";
	}

 

后来又测试了下removeSemicolonContent这个属性可以不用配置,默认就是true

分享到:
评论

相关推荐

    关于springMvc学习资料

    学习springMVC还有更多视频后续上传,学习springMVC还有更多视频后续上传,学习springMVC还有更多视频后续上传,

    SpringMVC中文教程

    ### SpringMVC中文教程知识点概览 #### 一、SpringMVC简介 SpringMVC是Spring框架的一个模块,专门用于简化Web应用程序...希望本文档能为读者提供足够的基础知识和实践经验,以便能够在实际项目中成功应用SpringMVC。

    springMVC解决中文乱码

    解决 SpringMVC 中的中文乱码问题可以通过多种方法来实现,包括在 web.xml 文件中配置字符编码、使用注解配置字符编码、使用 CharacterEncodingFilter 或者自定义 Filter 等。这些方法都可以有效地解决中文乱码问题...

    springMVC中文开发指南

    springMVC 中文开发指南,适合新手,适合初学者!

    SpringMVC 中xml文件的读取与显示

    控制器可以通过`ModelAndView`对象或者直接在`@RequestMapping`方法中返回逻辑视图名来指定JSP页面。 例如,一个简单的控制器可能是这样的: ```java @Controller public class HelloWorldController { @...

    SpringMVC PPT_springmvc_

    SpringMVC 是一款基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的重要组成部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。本教程将深入探讨 SpringMVC 的核心概念、配置以及实际应用。...

    SpringMVC完整使用教程

    本教程将深入探讨 SpringMVC 的核心功能和使用方法。 ### 第 1 章 SpringMVC 概述 SpringMVC 旨在简化 Web 开发,通过解耦控制器、服务、业务逻辑和视图,提高代码的可测试性和可维护性。其核心组件包括 ...

    SpringMVC中注解的详细使用

    在SpringMVC中,注解的使用极大地简化了配置,提高了代码的可读性和可维护性。本篇将详细介绍SpringMVC中的一些核心注解及其应用场景。 1. `@Controller`:这个注解用于标记一个类作为Spring MVC的控制器。当一个...

    springMVC练手代码

    在SpringMVC中,控制器通常由带有`@Controller`注解的Java类实现,方法上使用`@RequestMapping`注解来映射URL。 5. **视图(View)**:视图负责展示数据。SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等...

    java springmvc

    下面将详细讨论SpringMVC的关键组件和它们在实际开发中的应用。 1. **DispatcherServlet**: SpringMVC的核心组件,作为前端控制器,负责接收HTTP请求,并根据请求映射信息分发到相应的处理器。 2. **Model**: 在...

    SpringMVC学习编程代码

    在SpringMVC中,我们可以使用`ModelAndView`对象或者直接返回字符串来指定视图。例如,`return "success";`表示重定向到名为"success"的视图页面。 此外,SpringMVC支持数据绑定和验证,可以通过`@ModelAttribute`...

    SpringMVC API

    在SpringMVC中,可以使用HibernateTemplate或JPA(Java Persistence API)来进一步简化数据库操作,使得代码更加整洁且易于测试。 在SpringMVC中集成Hibernate,首先需要配置Hibernate的SessionFactory,并将其注入...

    SpringMVC+Mysql实例详解

    在Spring配置文件中,你会看到关于数据源和连接池的配置。 业务逻辑层通常包含Service接口和其实现类,它们封装了与数据库交互的具体操作。Service层可以使用@Autowired注入DAO(数据访问对象)层,执行SQL查询或...

    SpringMVC完整文档PDF

    它可能涵盖了如何创建一个简单的SpringMVC项目,包括配置XML文件,定义控制器,处理请求和响应,以及使用视图解析器如JSP或Thymeleaf。此外,教程可能还涉及了数据绑定、表单验证、国际化和异常处理等主题。 最后,...

    SpringMVC Demo_java_springmvc_DEMO_

    这个名为"SpringMVC Demo_java_springmvc_DEMO_"的项目是一个演示示例,旨在展示如何在Java项目中集成和使用SpringMVC。通过这个项目,我们可以学习到以下关键知识点: 1. **环境配置**:首先,我们需要一个Java...

    开源框架面试题系列:Spring+SpringMVC+MyBatis.zip

    9. **SpringMVC中的拦截器**:定义、配置和使用Interceptor,以及其在Web应用中的作用。 理解并熟练掌握Spring、SpringMVC和MyBatis这三大框架,对于Java开发者来说至关重要,它们不仅能够提高开发效率,还能帮助...

    SpringMVC是实现登陆

    在SpringMVC中,可以使用Service层来封装这种业务逻辑,通过@Autowired注解注入对应的UserService,并调用其提供的验证方法。 在验证成功后,通常会生成一个Session或Token来保持用户的登录状态。Spring Security是...

Global site tag (gtag.js) - Google Analytics