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 ...
随机推荐
- [USACO 04OPEN]MooFest
Description 约翰的N 头奶牛每年都会参加“哞哞大会”.哞哞大会是奶牛界的盛事.集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等.它们参加活动时会聚在一起,第i 头奶牛的坐标为Xi,没 ...
- [Luogu 3919]【模板】可持久化数组(可持久化线段树/平衡树)
Description 如题,你需要维护这样的一个长度为 N 的数组,支持如下几种操作 在某个历史版本上修改某一个位置上的值 访问某个历史版本上的某一位置的值 此外,每进行一次操作(对于操作2,即为生 ...
- [测试题]wows
Description 山山最近在玩一款游戏叫战舰世界(steam 游戏太少了),他被大舰巨炮的魅力折服,于是山山开了一局游戏,这次发现目标是一艘战列舰新墨西哥级,舰桥很高,原本应该打在目标身后的圆形 ...
- HDU3389 Game
Problem Description Bob and Alice are playing a new game. There are n boxes which have been numbered ...
- ●洛谷P3242 [HNOI2015]接水果
题链: https://www.luogu.org/problemnew/show/P3242 题解: 整体二分,扫描线+树状数组. 详细的题解:http://blog.csdn.net/thy_as ...
- [BZOJ]1045 糖果传递(HAOI2008)
放一道数学题. Description 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. Input 第一行一个正整数n<=1000000,表示 ...
- java 之 MyBatis(sql 可以执行,在eclipse执行报错问题)
前段时间写 mybatis Sql 查询语句的时候,发现一个很奇怪的现象,我写的SQL 语句在 pl/Sql 中明明可以执行,但是放到 eclipse 中执行却报错,因为时间比较久,依稀记得是文字与字 ...
- vue--"卡片层叠" 组件 开发小记
背景:影城移动点餐web App增加会员卡支付功能 需求:确认订单页点击会员卡项弹出会员卡列表,多张会员卡依次叠加覆盖上一张80%的高度,点击任意卡片则改卡片置为当前卡片,只有当前卡片显示全部卡片信息 ...
- Eclipse创建Maven工程
Eclipse创建Maven工程: Eclipse: New -> Other -> Maven Project -> Next -> webapp -> Finish ...
- Laravel-admin 使用Layer相册功能
使用Laravel-admin后台,Laravel-admin已经集成了很多前端组件,但是在手册中也没有发现能够展示相册的插件,而本人比较喜欢Layer弹窗的插件所以想使用Layer来进行效果展示 通 ...