(转)

1,使用HttpServletRequest获取

  1. @RequestMapping("/login.do")
  2. public String login(HttpServletRequest request){
  3. String name = request.getParameter("name")
  4. String pass = request.getParameter("pass")
  5. }
 

 2,Spring会自动将表单参数注入到方法参数,和表单的name属性保持一致。和Struts2一样

  1. @RequestMapping("/login.do")
  2. public String login(HttpServletRequest request,
  3. String name,
  4. @RequestParam("pass")String password) // 表单属性是pass,用变量password接收
  5. {
  6. syso(name);
  7. syso(password)
  8. }

3,自动注入Bean属性

  1. <form action="login.do">
  2. 用户名:<input name="name"/>
  3. 密码:<input name="pass"/>
  4. <input type="submit" value="登陆">
  5. </form>
  6. //封装的User类
  7. public class User{
  8. private String name;
  9. private String pass;
  10. }
  1. @RequestMapping("/login.do")
  2. public String login(User user)
  3. {
  4. syso(user.getName());
  5. syso(user.getPass());
  6. }

 

向页面传值:

当Controller组件处理后,向jsp页面传值,

1,使用HttpServletRequest 和 Session  然后setAttribute(),就和Servlet中一样

2,使用ModelAndView对象

3,使用ModelMap对象

4,使用@ModelAttribute注解

Model数据会利用HttpServletRequest的Attribute传值到success.jsp中

  1. @RequestMapping("/login.do")
  2. public ModelAndView  login(String name,String pass){
  3. User user = userService.login(name,pwd);
  4. Map<String,Object> data = new HashMap<String,Object>();
  5. data.put("user",user);
  6. return new ModelAndView("success",data);
  7. }

使用ModelMap参数对象示例:

ModelMap数据会利用HttpServletRequest的Attribute传值到success.jsp中

  1. @RequestMapping("/login.do")
  2. public String login(String name,String pass ,ModelMap model){
  3. User user  = userService.login(name,pwd);
  4. model.addAttribute("user",user);
  5. model.put("name",name);
  6. return "success";
  7. }

 使用@ModelAttribute示例

在Controller方法的参数部分或Bean属性方法上使用

@ModelAttribute数据会利用HttpServletRequest的Attribute传值到success.jsp中

  1. @RequestMapping("/login.do")
  2. public String login(@ModelAttribute("user") User user){
  3. //TODO
  4. return "success";
  5. }
  6. @ModelAttribute("name")
  7. public String getName(){
  8. return name;
  9. }

Session存储:

可以利用HttpServletReequest的getSession()方法

  1. @RequestMapping("/login.do")
  2. public String login(String name,String pwd
  3. ModelMap model,HttpServletRequest request){
  4. User user = serService.login(name,pwd);
  5. HttpSession session = request.getSession();
  6. session.setAttribute("user",user);
  7. model.addAttribute("user",user);
  8. return "success";
  9. }

Spring MVC 默认采用的是转发来定位视图,如果要使用重定向,可以如下操作

1,使用RedirectView

2,使用redirect:前缀

  1. public ModelAndView login(){
  2. RedirectView view = new RedirectView("regirst.do");
  3. return new ModelAndView(view);
  4. }

   或者用如下方法,工作中常用的方法:

  1. public String login(){
  2. //TODO
  3. return "redirect:regirst.do";
  4. }

spring mvc 存取值的更多相关文章

  1. spring MVC 返回值信息和ResponseBody的响应json数据

    spring mvc的界面返回: 如果我们定义的返回类型是String 那么我们返回的时候直接写入 我们的界面的名字就可以了  springmvc会自动去找到我们的界面,如果是void类型的返回那么 ...

  2. Spring MVC无法获取ajax POST的参数和值

    一.怎么会这个样子 很简单的一个想法,ajax以POST的方式提交一个表单,Spring MVC解析.然而一次次的打印null折磨了我整整一天…… 最后的解决现在看来是很明显的问题,“只是当时已惘然” ...

  3. Spring MVC 不能正常获取参数的值

    最近在开发时遇到一个非常奇怪的问题,在tomcat8中使用Spring MVC框架,在Controller中的方法参数无法正常获取到相应的值,将tomcat版本换成7.0就解决了. 记录以下解决过程, ...

  4. spring mvc Controller中使用@Value无法获取属性值

    在使用spring mvc时,实际上是两个spring容器: 1,dispatcher-servlet.xml 是一个,我们的controller就在这里,所以这个里面也需要注入属性文件 org.sp ...

  5. Spring MVC学习之三:处理方法返回值的可选类型

    http://flyer2010.iteye.com/blog/1294400 ———————————————————————————————————————————————————————————— ...

  6. 【spring mvc】spring mvc POST方式接收单个字符串参数,不加注解,接收到的值为null,加上@RequestBody,接收到{"uid":"品牌分类大”},加上@RequestParam报错 ---- GET方式接收单个参数的方法

    spring mvc POST方式 接收单个参数,不加任何注解,参数名对应,接收到的值为null spring mvc POST方式 接收单个参数,加上@RequestBody,接收到参数格式:{&q ...

  7. Spring MVC的方法返回值和参数传递

    1. SpringMVC方法的返回值类型 3.1String类作为返回值 3.1.1Controller层 /** * 返回值类型为String时,一般用于返回视图名称 * 1.当方法返回值为null ...

  8. spring mvc表单form值自动传到javabean-注解@ModelAttribute

    直接通过Form Bean进行表单可以简化表单提交的处理,特别是对于复杂表单,过于简单的表单就不建议了,因为毕竟需要额外创建一个Form Bean.前段时间项目中有一个比较复杂的表单,有多层次而且涉及 ...

  9. Spring MVC RedirectAttributes取值方法

    RedirectAttributes是Spring mvc 3.1版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的他有两种带参的方式:第一种: attr.addAttribute(" ...

随机推荐

  1. 前后端分离之vue2.0+webpack2 实战项目 -- webpack介绍

    webpack的一点介绍 Webpack 把任何一个文件都看成一个模块,模块间可以互相依赖(require or import),webpack 的功能是把相互依赖的文件打包在一起.webpack 本 ...

  2. 图解函数重载以及arguments

  3. 【PAT_Basic日记】1004 成绩排名

    至今仍然存在问题,第一个测试点不过 #include <stdio.h> #include <stdlib.h> #include <string.h> typed ...

  4. 【caffe-windows】 caffe-master 之 训练自己数据集(图片转换成lmdb or leveldb)

    前期准备: 文件夹train:此文件夹中按类别分好子文件夹,各子文件夹里存放相应图片 文件夹test:同train,有多少类就有多少个子文件夹 trainlabels.txt : 存的是训练集的标签  ...

  5. Java 设计模式(四)-工厂方法模式 (FactoryMethod Pattern)

    1     概念定义 1.1   定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 1.2   类型 创建类模式 2     原理特征 2.1   类 ...

  6. Laravel 中使用 Redis 数据库

    一.前言 Redis 是一个开源高效的键值对存储系统,它通常用作为一个数据结构服务器来存储键值对,它可以支持字符串.散列.列表.集合.有序集合. 1. 安装 predis/predis 在 Larav ...

  7. iOS开发 - Swift实现检测网络连接状态及网络类型

    一.前言 在移动开发中,检测网络的连接状态尤其检测网络的类型尤为重要.本文将介绍在iOS开发中,如何使用Swift检测网络连接状态及网络类型(移动网络.Wifi). 二.如何实现 Reachabili ...

  8. javascript中的==与===

    一.主要区别: 1.通俗的来说,==是值的比较,而===不仅仅比较值,还比较引用的是否是同一个对象. 2.用==来比较的时候,如果两个数的操作数的类型不一样,会先转换.而===的操作数则不会进行任何转 ...

  9. shapeless官方指南翻译总结

    今天抽空把之前翻译的<The Type Astronaut's Guide to Shapeless>一书放到了Gitbook上,将其开源供所有人阅读并希望大家能够提出宝贵意见,地址为sh ...

  10. C# selenium环境配置

    1.下载C#selenium     selenium官网:  http://www.seleniumhq.org/download/   下载后解压:     打开net35后,将里面的dll文件添 ...