Spring MVC之请求参数和路径变量

请求参数和路径参数都可以用于发送值给服务器。二者都是URL的一部分。

一、请求参数

  请求参数采用key = value形式,并用“&”分隔。例如下面的URL带有名为name和pwd的请求参数。
  localhost:9090/showUser?name=spring&pwd=spring
  在传统的servlet编程中,可以使用HttpServletRequest的getParameter方法来获取请求参数值。
  String name = httpServletRequest.getParameter(“name”);
  Spring MVC 提供了一个更简单的方法来获取请求参数:通过注解@RequestParam来注释方法参数。根据上面的URL,编写一个映射函数。

@RequestMapping(value="/showUser/")
 public String testRequestParam(@RequestParam String name, @RequestParam String pwd, Map<String, Object> model){
  model.put("name", name);
  model.put("pwd", pwd);
  return "showUser";
 }

运行结果如下:

这里写图片描述

二、路径参数

 路径参数类似请求参数,但没有key部分,只是一个值。例如下面的URL:
 http://localhost:9090/showUser/spring
其中的spring是表示用户的密码字符串。在Spring MVC中,spring被作为路径变量用来发送一个值到服务器。Sping 3以后Spring 3以后支持注解@PathVariable用来接收路径参数。为了使用路径变量,首先需要在RequestMapping注解的值属性中添加一个变量,该变量必须放在花括号之间,例如:
@RequestMapping(value= “/showUser/{pwd}”)
然后在方法签名中加上@PathVariable注解。具体代码如下:

@RequestMapping(value= "/showUser/{pwd}")
 public String testPathVariable(@PathVariable(name="pwd") String password, Map<String, Object> model){
  model.put("pwd", password);
  return "showUser";
 }

运行结果:

这里写图片描述

可以在请求映射中使用多个路径变量。例如,下面定义了userId和orderId两个路径变量。
@RequestMapping(value= “/showUser/{userId}/{orderId}”)。

本文使用同一个jsp文件,如下

<!DOCTYPE html >
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 </head>
 <body>
  <div class="login-item">
   <label>用户名:</label>
   <span>${name}</span>
  </div>
  <div class="login-item">
   <label>密码:</label>
   <span>${pwd}</span>
  </div>
 </body>
 <script src="/static/js/jquery-3.1.1.min.js"></script>
</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值