SpringMVC学习:URL参数绑定@PathVariable详解
需积分: 0 95 浏览量
更新于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应用开发能力。
225 浏览量
231 浏览量
255 浏览量
2021-05-15 上传
2022-07-25 上传
2021-04-27 上传
2021-05-19 上传
2021-05-09 上传
333 浏览量
双联装三吋炮的娇喘
- 粉丝: 20
- 资源: 2万+
最新资源
- 09年计算机考研大纲
- Preview of Web Services Reliable Messaging in SAP Netweaver Process Integration 7.1.pdf
- Implementing a Distributed Two-Phase-Commit Scenario with Web Services and SAP NetWeaver PI 7.1.pdf
- NiosII step by step (1-10)
- Mantis安装经验总结
- 英语词根词缀记忆大全[2].doc
- 赛灵思DSPFPGAWorkbook_print
- RFC 3261 SIP spec.
- 无线网络规划(白皮书)
- oracle函数大全
- 大学英语精读第二册课后翻译答案
- myEclipse教程
- MIT的人工智能实验室是如何做研究的
- 关于Linux系统下的软件安装
- c++标准程序库 简体中文
- Web+Service学习.doc