springmvc基于注解的开发

注解第一个例子

1. 创建web项目 
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 
部署,访问;

注解方式参数

在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)

[转]学习笔记_springmvc注解形式的开发参数接收的更多相关文章

  1. springmvc注解形式的开发参数接收

    springmvc基于注解的开发 注解第一个例子 1. 创建web项目 springmvc-2 2. 在springmvc的配置文件中指定注解驱动,配置扫描器 <!-- sprimgmvc 注解 ...

  2. springmvc学习笔记(常用注解)

    springmvc学习笔记(常用注解) 1. @Controller @Controller注解用于表示一个类的实例是页面控制器(后面都将称为控制器). 使用@Controller注解定义的控制器有如 ...

  3. 学习笔记_J2EE_SpringMVC_03_注解配置_@RequestMapping用法

    @RequestMappingde的用法 摘要: 主要介绍注解@RequestMapping的用法 一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMappi ...

  4. angular学习笔记(2)- 前端开发环境

    angular1学习笔记(2)- 前端开发环境 1.代码编辑工具 2.断点调试工具 3.版本管理工具 4.代码合并和混淆工具 5.依赖管理工具 6.单元测试工具 7.集成测试工具 常见的前端开发工具 ...

  5. React+Redux学习笔记:React+Redux简易开发步骤

    前言 React+Redux 分为两部分: UI组件:即React组件,也叫用户自定义UI组件,用于渲染DOM 容器组件:即Redux逻辑,处理数据和业务逻辑,支持所有Redux API,参考之前的文 ...

  6. Dynamic CRM 2015学习笔记(4)修改开发人员资源(发现服务、组织服务和组织数据服务)url地址及组织名

    在azure vm上安装了CRM 2015后 Dynamic CRM 2015学习笔记(1)Azure 上安装 CRM 2015, 发现了一个问题,那就是在设置 ->自定义项 –> 开发人 ...

  7. [原创]java WEB学习笔记03:使用eclipes开发javaWEB项目

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. 【转】Pro Android学习笔记(二):开发环境:基础概念、连接真实设备、生命周期

    在Android学习笔记(二):安装环境中已经有相应的内容.看看何为新.这是在source网站上的Android架构图,和标准图没有区别,只是这张图颜色好看多了,录之.本笔记主要讲述Android开发 ...

  9. SpringMVC学习笔记之二(SpringMVC高级参数绑定)

    一.高级参数绑定 1.1 绑定数组 需求:在商品列表页面选中多个商品,然后删除. 需求分析:功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Cont ...

随机推荐

  1. 使用Laya引擎开发微信小游戏

    在支持微信小游戏的游戏引擎中,Cocos,Egret,Laya都对小游戏的开发提供了很多强大的支持.前段时间正好抽空研究了一下这块的内容,现做一个总结,针对如何使用Laya引擎开发微信小游戏给大家做一 ...

  2. MongoDB numa系列问题三:overcommit_memory和zone_reclaim_mode

    内核参数overcommit_memory : 它是 内存分配策略 可选值:0.1.2.0:表示内核将检查是否有足够的可用内存供应用进程使用:如果有足够的可用内存,内存申请允许:否则,内存申请失败,并 ...

  3. sell 创建项目

    1.数据操作软件 2.创建项目 3.mevan 镜像

  4. mybatis-generator生成逆向工程两种方式

    本文博客地址:http://blog.csdn.net/soonfly/article/details/64499423 逆向工程下载 链接:https://pan.baidu.com/s/1YOAq ...

  5. 代理服务 SQUID 测试

    第一部分:SQUID基础 Squid代理服务的基本配置: http_port 3128                    #设置监听的IP与端口号 cache_mem 64 MB          ...

  6. C# 多线程并发锁模式-总结

    开篇: 互斥还是lock Monitor Mutex 模式! Muex Monitor lock AutoEventSet ManualEventSet 后续的 ReaderWriterLock   ...

  7. Debug 路漫漫-06

    FSBPR 迭代一轮就停止???…… 循环条件没有问题.. 达到收敛条件了?——参数变化小于1e-4…? deltaU =0 —— U没有更新?——incU < 0 —— 取消动量(前半部分即可 ...

  8. mysql/mariadb基于ssl的主从复制

    当mysql/mariadb跨越互联网进行复制时别人可以窃取到mysql/mariadb的复制信息, 这些信息是明文的, 因此存在不安全性, 这里通过ssl对复制的信息进行加密 1. 创建证书中心 在 ...

  9. mysql配置文件 /etc/my.cnf 详细解释

    basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = path 给出存放着字符集的目录. datadir = path 从给定目录读取数据库文件 ...

  10. 剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣 创建线程数公式(MaxProcessMemory - JVMMemory – ReservedOsMemory)

    剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣 星期一早上到了公司,据称产品环境抛出了最可爱的异常—OutO ...