springmvc注解形式的开发参数接收
springmvc基于注解的开发
注解第一个例子
2. 在springmvc的配置文件中指定注解驱动,配置扫描器
<!-- sprimgmvc 注解驱动 --> <!-- <mvc:annotation-driven /> --> <!-- springmvc的扫描器,一旦有扫描器的定义上面的mvc:annotation.. 就不需要了,扫描器已经有哪里注解驱动的功能 --> <context:component-scan base-package="cn.edu.hqu.springmvc"></context:component-scan> <!--视图解析器 前缀+ viewName +后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- webroot到某一指定的文件夹的路径 --> <property name="prefix" value="/WEB-INF/"></property> <!-- 视图名称的后缀 --> <property name="suffix" value=".jsp"></property> </bean> </beans>
在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
部署,访问;
注解方式参数
/**
* 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
/**
* 传递的参数名字必须要和实体类的属性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/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 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://pan.baidu.com/s/1bntiZzp
springmvc注解形式的开发参数接收的更多相关文章
- [转]学习笔记_springmvc注解形式的开发参数接收
springmvc基于注解的开发 注解第一个例子 1. 创建web项目 2. 在springmvc的配置文件中指定注解驱动,配置扫描器 <!-- sprimgmvc 注解驱动 --> &l ...
- SpringMVC 传递相同名称的参数的最佳方法
华为云4核8G,高性能云服务器,免费试用 >>> SpringMVC 多个对象的相同字段参数传递解决方案,在SpringMVC中,有时需要传递多个对象(除了Model和web元素 ...
- 《SpringMVC从入门到放肆》九、SpringMVC注解式开发(简单参数接收)
上一篇我们学习了注解式开发的配置方式并写了一个小Demo跑起来.今天我们来学习注解开发的参数接收.处理器方法中的常用参数有五类,这些参数会在系统调用时由系统自动赋值,即程序员可以在方法中直接使用.具体 ...
- 《SpringMVC从入门到放肆》十、SpringMVC注解式开发(复杂参数接收)
上一篇我们学习了简单的参数接收方式,以及对编码的统一处理.今天我们来接收对象参数. 一.接收对象参数 jsp页面: <%@ page language="java" impo ...
- 10.SpringMVC注解式开发-处理器方法的参数
1.逐个参数接收 只要保证请求参数名与该请求处理方法的参数名相同即可 // 请求参数名 与该处理器中的请求方法的参数名相同 ,即可接收前台传递过来的参数 public ModelAndView met ...
- 3.2.3 SpringMVC注解式开发
SpringMVC注解式开发 1. 搭建环境 (1) 后端控制器无需实现接口 , 添加相应注解 Controller类添加注解 @Controller //该注解表将当前类交给spring容器管理 @ ...
- SpringMVC请求参数接收总结
前提 在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结.SpringMVC中处理控制器参数的接口是HandlerMethodArgumentRes ...
- SpringMVC请求参数接收总结(一)
前提 在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结.SpringMVC中处理控制器参数的接口是HandlerMethodArgumentRes ...
- 2.5万字长文简单总结SpringMVC请求参数接收
这是公众号<Throwable文摘>发布的第22篇原创文章,暂时收录于专辑<架构与实战>.暂定下一篇发布的长文是<图文分析JUC同步器框架>,下一篇发布的短文是&l ...
随机推荐
- vue中自定义组件(插件)
vue中自定义组件(插件) 原创 2017年01月04日 22:46:43 标签: 插件 在vue项目中,可以自定义组件像vue-resource一样使用Vue.use()方法来使用,具体实现方法: ...
- [NOIp 2012]国王游戏
Description 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国 ...
- [Codeforces]852I - Dating
题目大意:给定一棵n个点的树,每个点上有一个汉子或妹子,每人有一个权值,每次询问一条链上选出一对权值相等的男女有多少种选法.(n,q<=10^5) 做法:比较显然的树上莫队,熟悉序列莫队那套理论 ...
- hdu 5492 (暴力+nice)
题意:在矩阵中,找一条路从 (1,1)->(n,m),使方差最小 思路: T = (N+M−1)∑N+M−1i=1(Ai−Aavg)2 将N + M - 1乘进去,即求1 ~ N+M-1,(N ...
- bzoj3597[Scoi2014]方伯伯运椰子 01分数规划+spfa判负环
3597: [Scoi2014]方伯伯运椰子 Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 594 Solved: 360[Submit][Statu ...
- Visual Studio 2015 无法命中断点
新安装操作系统后发现,vs2015无法命中断点. 在项目中设置生成调试信息:FULL 即可.
- python3 字符串str 教程
字符串可以用单引号或双引号来创建. Python 不支持单字符类型,单字符也在Python也是作为一个字符串使用. 例: var1 = 'Hello World!' var2 = "Pyth ...
- solr6.6初探之配置篇
一.solr的简介 1) solr是企业级应用的全文检索项目,它是基于Apache Lucence搜索引擎开发出来的用于搜索的应用工程 2) solr最新版本6.6 下载地址:下载地址 二 启动与配置 ...
- 笔记11 在XML中声明切面(2)
为通知传递参数 1.声明一个CompactDiscs接口.内部包含两个方法: show() 用于显示唱片的名字和艺术风格 playTrack(int number) 根据传入的磁道数播放相应磁道的音乐 ...
- 你知道src、url、href的全称吗?
url:Uniform Resource Locator统一资源定位符 src:Source资源 href:Hypertext Reference超文本引用