博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]学习笔记_springmvc注解形式的开发参数接收
阅读量:4558 次
发布时间:2019-06-08

本文共 3681 字,大约阅读时间需要 12 分钟。

springmvc基于注解的开发

注解第一个例子

1. 创建web项目 

2. 在springmvc的配置文件中指定注解驱动,配置扫描器 

在cn.hqu.springmvc下  新  建  TestController 
package cn.edu.hqu.springmvc;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller//用来标注当前类是springmvc的控制层的类 @RequestMapping("/test") //controller的唯一标识或者命名空间 public class TestController { /** * 方法的返回值是ModelAndVIew中的viewName * @return */ @RequestMapping("/hello.do")//用来访问控制层的方法的注解 public String hello(){ return "jsp/index"; } }
3. @controller:标识当前类是控制层的一个具体的实现 
4. @requestMapping:放在方法上面用来指定某个方法的路径,当它放在类上的时候相当于命名空间需要组合方法上的requestmapping来访问。 
类上面有@RequestMapping("/ test ")访问:localhost:8080/springmvc-2/ test /hello.do 
没有的话:localhost:8080/springmvc-2/hello.do 
部署,访问;

注解方式参数

在TestController

/**	 * HttpServletRequest可以直接定义在参数的列表	 * @param request	 * @return	 */	@RequestMapping("/toPerson.do")	public String toPerson(HttpServletRequest request) { String result = request.getParameter("name"); System.out.println(result); return "jsp/index"; }
重启tomcat访问:http://localhost:8080/springmvc-2/test/toPerson.do?name=jerome 
控制台输出:jerome
 
 
/**	 * 在参数列表上直接定义要接收的参数名称,只要参数名称能匹配的上就能接收所传过来的数据	 * 可以自动转换成参数列表里面的类型,注意的是值与类型之间是可以转换的	 * @param name	 * @return	 */	@RequestMapping("/toPerson1.do")	public String toPerson1(String name,Integer age,String address){ System.out.println(name+" "+age+" "+address); return "jsp/index"; }
地址栏和代码两边的参数要一致; 
重启tomcat,访问: 
http://localhost:8080/springmvc-2/test/toPerson1.do?name=jerome&age=23&address=china 
控制台输出:jerome 23 china
 

如果有时间类型要 注册属性编辑

/**	 * 注册时间类型的属性编辑器	 * @param binder	 */	@InitBinder	public void initBinder(ServletRequestDataBinder binder){ binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true)); }
@RequestMapping("/toPerson1.do")	public String toPerson1(String name,Integer age,String address,Date birthday){		System.out.println(name+" "+age+" "+address+" "+birthday); return "jsp/index"; }
重启tomcat,访问 
http://localhost:8080/springmvc-2/test/toPerson1.do?name=jerome&age=23&address=china&birthday=2012-12-12 
控制台输出:jerome 23 china Wed Dec 12 00:00:00 CST 2012
 

Springmvc接收实体类:

在cn.edu.hqu.entity 新建一个类Person,将上面的四个参数写进去,get set方法和toString方法;

/**	 * 传递的参数名字必须要和实体类的属性set方法后面的字符串匹配的上才能接收到参数	 * @param person	 * @return	 */	@RequestMapping("/toPerson2.do")	public String toPerson2(Person person){ System.out.println(person); return "jsp/index"; }
重启tomcat 执行 
http://localhost:8080/springmvc-2/test/to Person2 .do?name=jerome&age=23&address=china&birthday=2012-12-12 
控制台输出: 
Person [name=jerome, address=china, birthday=Wed Dec 12 00:00:00 CST 2012, age=23] 
浏览器参数首字母大写没影响; 
如果多个实体类:添加实体类User 属性:name age;get set toString方法; 
/**	 * 传递的参数名字必须要和实体类的属性set方法后面的字符串匹配的上才能接收到参数	 * 请求中的参数只要是能和参数列表里面的变量名或者实体里面的set后面的字符串匹配的上就能接受到	 * @param person	 * @return	 */	@RequestMapping("/toPerson2.do")	public String toPerson2(Person person, User user){ System.out.println(person); System.out.println(user); return "jsp/index"; }
重启tomcat 执行 
http://localhost:8080/springmvc-2/test/toPerson2.do?name=jerome&age=23&address=china&birthday=2012-12-12 
控制台输出: 
Person [name=jerome, address=china, birthday=Wed Dec 12 00:00:00 CST 2012, age=23] 
User [name=jerome, age=23]
 
接收一个数组; 
/**	 * 对数组的接收	 * @param names	 * @return	 */	@RequestMapping("/toPerson3.do")	public String toPerson3(String[] names){ for(String result:names){ System.out.println(result); } return "jsp/index"; }
重启tomcat 执行 
http://localhost:8080/springmvc-2/test/toPerson3.do?names=jerome&names=jelly 
控制台输出: 
jerome 
jelly 
 
(原文地址:http://www.tuicool.com/articles/rE3YJn)

转载于:https://www.cnblogs.com/jianyungsun/p/6666000.html

你可能感兴趣的文章
洛谷 P1202 [USACO1.1]黑色星期五Friday the Thirteenth 题解
查看>>
(4.20)SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧...
查看>>
基本数据类型(数字和字符串)
查看>>
函数__装饰器
查看>>
linux system函数分析
查看>>
前端优化措施
查看>>
论学习汉语和学习编程的异同点
查看>>
linux img文件压缩及解压
查看>>
Linux 下的 scp
查看>>
理解同步,异步和延迟脚本
查看>>
MMS源码中异步处理简析
查看>>
XMind 6 如何画流程图
查看>>
final发布评价
查看>>
DLL远程注入与卸载
查看>>
Jmeter-ForEach控制器
查看>>
Checklist: 2019 05.01 ~ 06.30
查看>>
Binary XML file : Error inflating class com.esri.android.map.MapView
查看>>
grep,awk和sed
查看>>
.NET Core WebAPI IIS 部署问题
查看>>
SystemTap 静态探针安装包
查看>>