版本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是Spring框架的一个模块,专门用于简化Web应用程序...希望本文档能为读者提供足够的基础知识和实践经验,以便能够在实际项目中成功应用SpringMVC。
解决 SpringMVC 中的中文乱码问题可以通过多种方法来实现,包括在 web.xml 文件中配置字符编码、使用注解配置字符编码、使用 CharacterEncodingFilter 或者自定义 Filter 等。这些方法都可以有效地解决中文乱码问题...
springMVC 中文开发指南,适合新手,适合初学者!
控制器可以通过`ModelAndView`对象或者直接在`@RequestMapping`方法中返回逻辑视图名来指定JSP页面。 例如,一个简单的控制器可能是这样的: ```java @Controller public class HelloWorldController { @...
SpringMVC 是一款基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的重要组成部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。本教程将深入探讨 SpringMVC 的核心概念、配置以及实际应用。...
本教程将深入探讨 SpringMVC 的核心功能和使用方法。 ### 第 1 章 SpringMVC 概述 SpringMVC 旨在简化 Web 开发,通过解耦控制器、服务、业务逻辑和视图,提高代码的可测试性和可维护性。其核心组件包括 ...
在SpringMVC中,注解的使用极大地简化了配置,提高了代码的可读性和可维护性。本篇将详细介绍SpringMVC中的一些核心注解及其应用场景。 1. `@Controller`:这个注解用于标记一个类作为Spring MVC的控制器。当一个...
在SpringMVC中,控制器通常由带有`@Controller`注解的Java类实现,方法上使用`@RequestMapping`注解来映射URL。 5. **视图(View)**:视图负责展示数据。SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等...
下面将详细讨论SpringMVC的关键组件和它们在实际开发中的应用。 1. **DispatcherServlet**: SpringMVC的核心组件,作为前端控制器,负责接收HTTP请求,并根据请求映射信息分发到相应的处理器。 2. **Model**: 在...
在SpringMVC中,我们可以使用`ModelAndView`对象或者直接返回字符串来指定视图。例如,`return "success";`表示重定向到名为"success"的视图页面。 此外,SpringMVC支持数据绑定和验证,可以通过`@ModelAttribute`...
在SpringMVC中,可以使用HibernateTemplate或JPA(Java Persistence API)来进一步简化数据库操作,使得代码更加整洁且易于测试。 在SpringMVC中集成Hibernate,首先需要配置Hibernate的SessionFactory,并将其注入...
在Spring配置文件中,你会看到关于数据源和连接池的配置。 业务逻辑层通常包含Service接口和其实现类,它们封装了与数据库交互的具体操作。Service层可以使用@Autowired注入DAO(数据访问对象)层,执行SQL查询或...
它可能涵盖了如何创建一个简单的SpringMVC项目,包括配置XML文件,定义控制器,处理请求和响应,以及使用视图解析器如JSP或Thymeleaf。此外,教程可能还涉及了数据绑定、表单验证、国际化和异常处理等主题。 最后,...
这个名为"SpringMVC Demo_java_springmvc_DEMO_"的项目是一个演示示例,旨在展示如何在Java项目中集成和使用SpringMVC。通过这个项目,我们可以学习到以下关键知识点: 1. **环境配置**:首先,我们需要一个Java...
9. **SpringMVC中的拦截器**:定义、配置和使用Interceptor,以及其在Web应用中的作用。 理解并熟练掌握Spring、SpringMVC和MyBatis这三大框架,对于Java开发者来说至关重要,它们不仅能够提高开发效率,还能帮助...
在SpringMVC中,可以使用Service层来封装这种业务逻辑,通过@Autowired注解注入对应的UserService,并调用其提供的验证方法。 在验证成功后,通常会生成一个Session或Token来保持用户的登录状态。Spring Security是...