SpringMVC学习:URL参数绑定@PathVariable详解
需积分: 0 160 浏览量
更新于2024-08-13
收藏 1.44MB PPT 举报
"本文主要讲解了在SpringMVC框架中如何通过URL路径变量来绑定请求参数,并展示了如何发送Ajax请求以及配置自定义转换服务和处理异常。"
在SpringMVC中,`@PathVariable`注解用于从URL路径中获取参数。例如,在给出的代码片段中:
```java
@RequestMapping("/{userId}")
public ModelAndView showDetail(@PathVariable("userId") String userId) {
ModelAndView mav = new ModelAndView();
mav.setViewName("user/showDetail");
mav.addObject("user", userService.getUserById(userId));
return mav;
}
```
这里的`/{userId}`是一个路径变量模板,`@PathVariable("userId")`则用于将URL中的`userId`部分绑定到方法参数上。当一个HTTP请求访问如`/123`这样的URL时,`showDetail`方法会被调用,其中`userId`参数的值为`123`。
另一个例子是:
```java
@Controller
@RequestMapping("/owners/{ownerId}")
public class RelativePathUriTemplateController {
@RequestMapping("/pets/{petId}")
public void findPet(@PathVariable String ownerId,
@PathVariable String petId, Model model) {
…
}
}
```
在这个类中,`/{ownerId}`和`/{petId}`都是路径变量,分别对应于`findPet`方法的`ownerId`和`petId`参数。这表示`findPet`方法会处理如`/owners/1/pets/2`这样的请求,将`1`作为`ownerId`,`2`作为`petId`。
接下来,我们看到了JavaScript中的Ajax请求示例,利用XMLHttpRequest对象发送POST请求:
```javascript
window.onload = function() {
var xhr = new XMLHttpRequest();
xhr.open("post", "test2", true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send("{\"name\":\"jzz\",\"id\":12}");
};
```
这段代码会在页面加载完成后,向`test2`接口发送一个包含JSON格式数据的POST请求。`Content-Type`头设置为`application/json`,表明发送的数据类型是JSON。
此外,还提到了SpringMVC中配置自定义转换服务和异常处理的部分:
```xml
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.zaprk.converter.MyUserConverter"/>
</list>
</property>
</bean>
<mvc:annotation-driven conversion-service="conversionService"/>
```
这部分配置了一个名为`conversionService`的bean,用于处理类型转换。`MyUserConverter`是自定义的转换器,可以将接收到的数据转换为特定的User对象。`mvc:annotation-driven`元素启用SpringMVC的注解驱动功能,并指定了自定义的转换服务。
最后,配置了异常处理器:
```xml
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="java.lang.Exception">errorPage</prop>
</props>
</property>
</bean>
```
这里定义了一个`exceptionResolver` bean,使用`SimpleMappingExceptionResolver`处理异常。当发生`Exception`时,它会将请求映射到`errorPage`视图,这通常是一个错误处理页面。
总结来说,SpringMVC通过`@PathVariable`注解实现URL与方法参数的绑定,通过Ajax发送JSON数据,以及自定义转换服务和异常处理机制,提供了灵活且强大的Web应用开发能力。
226 浏览量
237 浏览量
263 浏览量
338 浏览量
129 浏览量
262 浏览量
114 浏览量
517 浏览量
2014-03-19 上传
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
双联装三吋炮的娇喘
- 粉丝: 21
最新资源
- Java基因音乐软件开发:节奏与旋律的创新结合
- PHP缩略图类库实现与应用详解
- Web前端资源压缩包:CSS和JS文件整合
- 电子科技大学电路分析课程教案解析
- Go语言开发博客后端教程:Gin框架应用指南
- 深圳市建筑楼块矢量数据包:GIS格式导出与应用
- Angular与Spring Boot整合OIDC认证实践
- CRUDr命令行工具:实现远程API操作的便捷途径
- 掌握Java7开发:官方文档与JDK API全面指南
- Vue3ElementPlus:新一代前端组件库介绍
- 3口交换机设计方案:RTL8305NB与PCB文件
- JS图片上传与取色功能实现详解
- ArcSoft ArcFace Windows X64 V1.1最新版发布
- 掌握Windows核心编程,C++源码分析指南
- Swift技术开发:高效管理通讯录 Contacts
- Java API实现企业级名称和地址数据清洗