IDEA(maven)创建springMVC项目(4)——传参
0.前言
上面几篇中我们已经在把springMVC项目搭建完毕了,但是平常使用过程中还会遇到这样的情况。比如我们的参数可能会比较复杂,像下面这样:
或者说我们做登录验证的时候也要通过这种方式传递参数交个后台验证。
1.视图层向控制器传单个参数
通过@RequestParam 注解,我们的Controller改成下面的样子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package com.cat.controller; import com.cat.domain.Person; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import java.io.IOException; import java.util.ArrayList; import java.util.List; @Controller @RequestMapping(produces="text/html;charset=UTF-8") public class IndexController { //传递参数 @RequestMapping(value = "/hello3" ) public String hello3(@RequestParam String username ){ System.out.println("前台传递的参数是:" + username); return "hello"; } } |
我们通过浏览器访问以下网址就能在控制台看到信息了
http://localhost:8080/hello3?username=张三
当然,这样做还是有一定的问题,比如,我们请求
http://localhost:8080/hello3
会直接报错,原因就是username在请求过程中是必填项,不填就会报错。
那么我们修改几个参数
@RequestMapping(value = "/hello3" )
public String hello3(@RequestParam(value = "username", required = false) String username ){
System.out.println("前台传递的参数是:" + username);
return "hello";
}
required表示这个参数是不是必填项,false表示不是必填,这样的话我们省略username时就不会报错了。
2.视图层向控制器传对象
除了可以传递单个参数外,还可以传递一个对象,比如我们上一节中的Person,这样做的好处就是比如我们操作数据库更新的时候,把整个对象传过来,数据库可以一下更新很多数据。
http://localhost:8080/hello4?name=王敏&sex=女&age=18
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具