详解SpringMVC——接收请求参数和页面传参

所属分类: 软件编程 / java 阅读数: 31
收藏 0 赞 0 分享

spring接收请求参数:

1,使用HttpServletRequest获取

@RequestMapping("/login.do") 
public String login(HttpServletRequest request){ 
  String name = request.getParameter("name") 
  String pass = request.getParameter("pass") 
} 

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

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

3,自动注入Bean属性 

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

 向页面传值:

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

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

2,使用ModelAndView对象

3,使用ModelMap对象

4,使用@ModelAttribute注解 

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

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

使用ModelMap参数对象示例:

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

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

 使用@ModelAttribute示例

在Controller方法的参数部分或Bean属性方法上使用
@ModelAttribute数据会利用HttpServletRequest的Attribute传值到success.jsp中

@RequestMapping("/login.do") 
public String login(@ModelAttribute("user") User user){ 
  //TODO 
  return "success"; 
} 
 
@ModelAttribute("name") 
public String getName(){ 
  return name; 
} 

Session存储:

可以利用HttpServletReequest的getSession()方法

@RequestMapping("/login.do") 
public String login(String name,String pwd 
              ModelMap model,HttpServletRequest request){ 
   User user = serService.login(name,pwd); 
   HttpSession session = request.getSession(); 
   session.setAttribute("user",user); 
   model.addAttribute("user",user); 
   return "success"; 
} 

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

1,使用RedirectView

2,使用redirect:前缀

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

SpringBoot环境搭建及第一个程序运行(小白教程)

这篇文章主要介绍了SpringBoot环境搭建及第一个程序运行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

过滤器 和 拦截器的 6个区别(别再傻傻分不清了)

这篇文章主要介绍了过滤器 和 拦截器的 6个区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

SpringBoot整合SpringTask实现定时任务的流程

这篇文章主要介绍了SpringBoot整合SpringTask实现定时任务的流程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

vscode快速引入第三方jar包发QQ邮件

这篇文章主要介绍了vscode快速引入第三方jar包发QQ邮件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Java Enum和String及int的相互转化示例

这篇文章主要介绍了Java Enum和String及int的相互转化示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Spring boot如何快速的配置多个Redis数据源

这篇文章主要介绍了Spring boot如何快速的配置多个Redis数据源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

JAVA 对接腾讯云直播的实现

这篇文章主要介绍了JAVA 对接腾讯云直播的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

JavaSE static final及abstract修饰符实例解析

这篇文章主要介绍了JavaSE static final及abstract修饰符实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

SpringBoot定时任务参数运行代码实例解析

这篇文章主要介绍了SpringBoot定时任务运行代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Spring Boot调用 Shell 脚本实现看门狗功能

这篇文章主要介绍了Spring Boot调用 Shell 脚本实现看门狗功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多