springMVC接收URL传值

本文详细介绍了URL参数的Restful风格传递方式,以及在SpringMVC中如何使用注解@RequestMapping和@PathVariable进行参数接收。同时,文章还列举了JavaScript中location.href的各种用法,包括在不同上下文中打开新页面及页面刷新的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、URL传递参数时,格式是类似这样的,/param/urlParam/4/test,其中4和test都是参数,这就是所谓的Restful风格,Spring MVC中通过注解@RequestMapping和注解@PathVariable来获取这种方式的参数传递。
http://www.cnblogs.com/hellowhy/p/9741357.html
2、无论在静态页面还是动态输出页面中window.location.href都是不错的用了跳转的实现方案
javascript中的location.href有很多种用法,主要如下。
self.location.href="/url" 当前页面打开URL页面
location.href="/url" 当前页面打开URL页面
windows.location.href="/url" 当前页面打开URL页面,前面三个用法相同。
this.location.href="/url" 当前页面打开URL页面
parent.location.href="/url" 在父页面打开新页面(在一个页面P1下,如果设计一块空间,放置另一个页面P2,则放置的页面P2为子页面,页面P1为父页面。)
top.location.href="/url" 在顶层页面打开新页面

如果页面中自定义了frame,那么可将parent self top换为自定义frame的名称,效果是在frame窗口打开url地址

此外,window.location.href=window.location.href;和window.location.Reload()和都是刷新当前页面。区别在于是否有提交数据。当有提交数据时,window.location.Reload()会提示是否提交,window.location.href=window.location.href;则是向指定的url提交数据

### Spring MVC 中的参数传递方法 在Spring MVC框架内,存在多种方式用于处理HTTP请求中的参数传递。对于简单的数据类型以及基本的对象绑定,可以通过`@RequestParam`和`@PathVariable`注解实现;而对于复杂的数据结构比如列表或是JSON格式的内容,则可能需要用到`@RequestBody`。 #### 使用 `@RequestParam` 当需要获取URL查询字符串或者是表单提交过来的名字/对形式简单类型的参数时,可以采用`@RequestParam`来进行映射[^1]。下面是一个例子展示了如何接收两个不同类型的参数并返回拼接后的字符串: ```java @RequestMapping("/r3") public String request3(@RequestParam("userName") String name, @RequestParam("userAge") Integer age){ return "姓名:" + name + ", 年龄:" + age; } ``` 此段代码定义了一个处理器方法request3(),它接受来自客户端发送到路径/r3上的GET或POST请求,并从中提取名为`userName`的字符串型参数和名为`userAge`整数型参数作为输入[^3]。 #### 利用 `@PathVariable` 如果希望从URI模板变量中读取信息,那么应该考虑使用`@PathVariable`。这种方式特别适合RESTful风格的应用程序设计模式下资源定位的需求。 #### 处理集合类参数 针对像数组或者集合这样的复合类型参数,在某些情况下可以直接利用`@RequestParam`配合泛型指定具体的容器类型来完成解析工作。例如,要接收一组爱好名称组成的列表,可参照如下做法: ```java @Controller @RequestMapping("/param") public class ParamController { /** * 接收List<String> 类型的hobbyList 参数 */ @RequestMapping(value = "/list", method = RequestMethod.POST) @ResponseBody public String list(@RequestParam List<String> hobbyList) { hobbyList.forEach(System.out::println); return "success"; } } ``` 上述实例表明了怎样通过`@RequestParam`标注的方法形参去捕获由前端入的一系列兴趣爱好的条目[^2]。 #### JSON 数据与 `@RequestBody` 最后一种常见的情形涉及到了非标准表单编码(application/x-www-form-urlencoded 或 multipart/form-data)之外的数据交换媒介——即应用层协议为application/json的情况。此时应当借助于`@RequestBody`将整个消息体反序列化成Java对象实例以便进一步操作。这里给出一段示范性的源码片段说明这一点: ```java @ResponseBody @RequestMapping("demo5") public List<Long> demo5(@RequestBody List<Long> idList) { System.out.println("ids:" + idList); return idList; } ``` 这段逻辑表示服务器端准备好了响应带有特定ID编号集合作为目标位置的API调用,而这些ID将会被封装在一个`List<Long>`里边并通过实体主体的方式携带至后台服务端点进行后续业务流程处理[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值