spring mvc 存取值

1,使用HttpServletRequest获取

Java代码  

  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一样

Java代码  

  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属性

Java代码  

  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. }

Java代码  

  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中

Java代码  

  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中

Java代码  

  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中

Java代码  

  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()方法

Java代码  

  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:前缀

Java代码  

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

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

Java代码  

  1. public String login(){
  2. //TODO
  3. return "redirect:regirst.do";
  4. }
时间: 2024-08-13 02:18:18

spring mvc 存取值的相关文章

[转]spring mvc 返回值类型设定

今天遇到一个上传文件遇到的问题,在IE7和8下面会在上传完成后,弹出下载框. 查到的原因是返回值类型是json,返回头部content-type是:application/json,需要更改其返回的信息头为text/html. 还有一个问题是,返回类型是text/plain时,返回的值会被<pre></pre>标签包起来,影响前端解析. 方法一: @RequestMapping(value = "/excelUploadtest", method = Reque

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

spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void. * ModelAndView Java代码 1. @RequestMapping("/show1") 2. public ModelAndView show1(HttpServletRequest request, 3. HttpServletResponse response) throws Exception { 4. Mod

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

在使用spring mvc时,实际上是两个spring容器: 1,dispatcher-servlet.xml 是一个,我们的controller就在这里,所以这个里面也需要注入属性文件 org.springframework.web.servlet.DispatcherServlet 这里最终是使用WebApplicationContext parent =WebApplicationContextUtils.getWebApplicationContext(getServletContext

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

转自:http://www.cnblogs.com/cuizhf/p/3810652.html ———————————————————————————————————————————————————————————— spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void.下面将对具体的一一进行说明: ModelAndView @RequestMapping("/show1") publ

Spring MVC Rest 返回值为空

 问题描述: 采用Spring Restful ,可以通过浏览器的地址栏URL正确访问后台且不报错误,但是前台总是获取不到数据,前台也是收到了后台的响应,就是没有数据. 具体如下: 采用 Spring Restful 对不同的格式,可以发送不同格式化的数据,比如Json.XML.HTML..... 对于配置文件如下: 参考 Spring MVC Rest 学习 一:http://my.oschina.net/heweipo/blog/337581 参考Spring MVC Rest 学习 二:h

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

一.怎么会这个样子 很简单的一个想法,ajax以POST的方式提交一个表单,Spring MVC解析.然而一次次的打印null折磨了我整整一天…… 最后的解决现在看来是很明显的问题,“只是当时已惘然”…… 学海无涯!学海无涯!学海无涯! 二.简单的原罪 ajax提交的代码如下: 1 <script type="text/javascript"> 2 $(document).ready(function() { 3 $("#submit").click(f

Spring MVC多图片上传,多值上传

servlet-context.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.spr

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

直接通过Form Bean进行表单可以简化表单提交的处理,特别是对于复杂表单,过于简单的表单就不建议了,因为毕竟需要额外创建一个Form Bean. 前段时间项目中有一个比较复杂的表单,有多层次而且涉及数组,如果不采用Form Bean的处理方式会比较麻烦,但多层而且是数组,之前一直没有找到如何通过Form Bean方式进行处理,但相信Spring MVC应该可以做到,因为Spring的强大之处就是IOC嘛,所以在网上查阅资料,并不断尝试后终于解决,现在不管是多么复杂的表单均可以通过Form B

HandlerMethodArgumentResolver(一):Controller方法入参自动封装器(将参数parameter解析为值)【享学Spring MVC】

HandlerMethodArgumentResolver(一):Controller方法入参自动封装器(将参数parameter解析为值)[享学Spring MVC] 原文地址:https://www.cnblogs.com/hfultrastrong/p/12618488.html