SpringMVC-成功通过param传递参数
继续学习SpringMVC,JSON和Param是两种常用的传值的方法,其中JSON是用的最为普遍的,而现在我们来学习一下另一种方法就是param
最终结果:
由图可见我们成功访问到了所输的数值,换一个数字照样行得通
简要实现:
package com.aurora.param; import com.aurora.pojo.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller @RequestMapping("param") public class ParamController { // 直接接收 // /param/data?name=root&age=18 // 形参列表,填写对应名称的参数即可,请求参数名 = 形参参数名即可 // 1.名称相同,可以不传递,不报错 @RequestMapping("data") @ResponseBody public String data(String name,int age){ System.out.println("name = " + name + ", age = " + age); return "name = " + name + ", age = " + age; } //注解指定 //指定任意的请求参数名,要求必须传递,要求不必须传递 给以一个默认值 // /param/data1?account=root&page=1 // account必须传递 page可以不必须传递 如果不传递默认值就是1 /** * @RequestParam ->形参列表 指定请求参数名 或者是否必须传递 或者 非必须传递设置默认值 * @RequestParam ( value= "account" 指定请求参数名 如果形参名和请求参数名可以省略 , * required = false 前端是否必须传此参数,默认是必须,不传报400异常, * defaultValue = "1" 当非必须传递时设置默认值 ) */ @GetMapping("data1") @ResponseBody public String data1(@RequestParam(value = "account") String account, @RequestParam(required = false,defaultValue = "1") int page){ System.out.println("account = " + account + ", page = " + page); return "account = " + account + ", page = " + page; } //特殊值 //一名多值 key=1&key=2 直接使用 集合接值即可 // param/data2?hbs=吃&hbs=玩&hbs=学习 // 不加注解 @RequestParam 将hbs对应的一个字符串直接赋值给集合 类型异常 // 加了注解,经理就会将集合 add加入对应的 字符串 @GetMapping("data2") @ResponseBody public String data2(@RequestParam List<String> hbs){ System.out.println("hbs = " + hbs); return "ok"; } //使用实体对象接值 用户注册 (用户信息) -> 对应的实体类 -> 插入到数据库表 // param/data3?name=二狗&age=18 -> 准备一个对应属性和get/set方法的实体类即可 -> 形参列表声明对象参数即可 @RequestMapping("data3") @ResponseBody public String data3(User user){ System.out.println("user = " + user); return user.toString(); } }
package com.aurora.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class SpringMVCInit extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class[0]; } @Override protected Class<?>[] getServletConfigClasses() { return new Class[]{MvcConfig.class}; } @Override protected String[] getServletMappings() { return new String[]{ "/" }; } }
package com.aurora.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; @Configuration @ComponentScan("com.aurora.param") public class MvcConfig { @Bean public RequestMappingHandlerMapping handlerMapping(){ return new RequestMappingHandlerMapping(); } @Bean public RequestMappingHandlerAdapter handlerAdapter(){ return new RequestMappingHandlerAdapter(); } }
作者:冰稀饭Aurora
出处:https://www.cnblogs.com/rsy-bxf150/p/17787751.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端