SpringMVC 使用注解时控制器传参

 2023-09-07 阅读 25 评论 0

摘要:自动注入 默认方法的参数名和网页的属性名相同,会自动注入(自动转换类型) Tips:若方法的参数名和网页的属性名并不相同,可使用注解 @RequestParam(value=“网页的属性名”),其他属性: defaultValue:给参数赋

自动注入

默认方法的参数名和网页的属性名相同,会自动注入(自动转换类型)
Tips:若方法的参数名和网页的属性名并不相同,可使用注解
@RequestParam(value=“网页的属性名”),其他属性:
defaultValue:给参数赋默认值
required=true:使得必须传参,若没有则报异常(500)
Ps:当required和deafultValue一起使用时,required恒不成立
如图:为JSP页面及控制器函数
在这里插入图片描述

类对象

可在参数位置使用类对象,SpringMVC会自动将属性注入到类中同名属性(set方法)
Ps:400错误,参数数据类型和输入类型不匹配
如图:继续使用上面的jsp表单
在这里插入图片描述

原生对象

可获取到请求对象(HttpServletRequest req),也包括其他原生servlet的东西
如:
在这里插入图片描述

复杂参数

①如复选框,传递多个同名参数时,并不会自动寻找同名形参
使用@RequestParam(“网页的属性名”)List<String> 形参名

②对于abc.name这种风格的参数,可新建一个demo类,包含一个abc的类的对象属性
abc类中可定义name属性,形参使用demo类对象,会自动注入

controller可以调用controller吗。③对于abc[0].name和abc[1].name时,可将abc变为List<Abc> abc,即使用list存储多个对象

redultful风格参数

resultful传值,简化jsp中参数传值方式:
将demo?id=~&name=~简化为demo/id/name

此时需使用@RequestMapping(“demo/{id(自定义)}/{name1}”)进行拦截
传参时使用注解@PathVariable(value=""),或使得形参名和前面的自定义名称同名
对于resultful风格和普通风格同时存在时,优先找最匹配的

Ps:此时会改变return时的相对路径,进行请求转发时,需使用资源绝对路径
如图:使用超链接进行请求测试
在这里插入图片描述

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/14520.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息