1.@RequestParam

@RequestParam 常用来映射请求参数,它有三个属性可以配置:

  • value 值即请求参数的参数名
  • required 该参数是否必须. 默认为 true
  • defaultValue 请求参数的默认值
<a href="springmvc/testRequestParam?username=yyx&age=29">Test
RequestParam</a>
@RequestMapping(value = "/testRequestParam")
public String testRequestParam(@RequestParam(value = "username") String username,
@RequestParam(value = "age", required = false, defaultValue = "0") int age) {
// @RequestParam(value = "age", required = false) Integer age) {
System.out.println("testRequestParam,username:" + username + ",age:" + age);
return SUCCESS;
}

注意:Integer值可以为null,int存入时必须有值

   2.@PathVariable

@PathVariable 可以来映射 URL 中的占位符到目标方法的参数中.体现restful风格

<a href="springmvc/testPathVariable/1">Test PathVariable</a>
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id) {
System.out.println("testPathVariable:" + id);
return SUCCESS;
}

   3.HttpServletRequest

HttpServletRequest的getParameter(参数String)方法获取请求中的参数

<a href="springmvc/testServletAPI?userName=Tom">Test ServletAPI</a>
@RequestMapping("/testServletAPI")
public String testServletAPI(HttpServletRequest request)
throws IOException {
System.out.println(request.getParameter("userName"));
return SUCCESS;
}

注意:参数名称必须和登陆页面的name="userName"相同

   4.直接把表单的参数写在Controller相应的方法的形参中

<form action="${pageContext.request.contextPath}/springmvc/login"
method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="userPwd"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="登陆"></td>
</tr>
</table>
</form>
/**
* 控制器中方法的形参userName,userPwd
* 名称必须和登陆页面的name="userName",name="userPwd"相同
* @param userName
* @param userPwd
* @return
*/
@RequestMapping("/login")
public String loginByUser(String userName, String userPwd) {
System.out.println("userName is:" + userName);
System.out.println("userPwd is:" + userPwd);
return "success";
}

  注意: name="userName"和String userName要一一对应,名称相同

   5.通过一个bean来接收

package com.springmvc.entity;

public class User {
private String userName;
private String userPwd; public User() {
super();
} public User(String userName, String userPwd) {
super();
this.userName = userName;
this.userPwd = userPwd;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getUserPwd() {
return userPwd;
} public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
} @Override
public String toString() {
return "User [userName=" + userName + ", userPwd=" + userPwd + "]";
} }
<form action="${pageContext.request.contextPath}/springmvc/loginPoJo"
method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="userPwd"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="登陆"></td>
</tr>
</table>
</form>
/**
* 登陆页面的name="userName",name="userPwd"必须和Bean类的属性名称相同
* @param user
* @return
*/
@RequestMapping("/loginPoJo")
public String loginByUser(User user) {
System.out.println("userName is:" + user.getUserName());
System.out.println("userPwd is:" + user.getUserPwd());
return "success";
}

注意: name="userName"和PoJo属性要一一对应,名称相同

SpringMVC探究-----常用获取传递参数的方法的更多相关文章

  1. springMVC controller间跳转 重定向 传递参数的方法

    springMVC controller间跳转 重定向 传递参数的方法 spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参 ...

  2. (转)用JS获取地址栏参数的方法(超级简单)

    转自http://www.cnblogs.com/fishtreeyu/archive/2011/02/27/1966178.html 用JS获取地址栏参数的方法(超级简单) 方法一:采用正则表达式获 ...

  3. 使用jquery获取url以及jquery获取url参数的方法

    使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下 1.window.location.href; 其实只是用到了javas ...

  4. 使用jquery获取url以及jquery获取url参数的方法(转)

    使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下 1.window.location.href; 其实只是用到了javas ...

  5. 多浏览器兼容用javascript获取url参数的方法比较推荐的一种

    多浏览器兼容用javascript获取url参数的方法比较推荐的一种 <script language = javascript> function request(paras){ var ...

  6. C++向main函数传递参数的方法(实例已上传至github)

    通常情况下,我们定义的main函数都只有空形参列表: int main(){...} 然而,有时我们确实需要给mian传递实参,一种常见的情况是用户设置一组选项来确定函数所要执行的操作.例如,假定ma ...

  7. jsp中四种传递参数的方法

    jsp中四种传递参数的方法如下: 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="i ...

  8. js获取url参数的方法

    js获取url参数的方法有很多. 1.正则分析 function getQueryString(name) { var reg = new RegExp("(^|&)" + ...

  9. Jsp传递参数的方法

    今天老师讲了jsp中四种传递参数的方法,我觉得总结一下,挺好的,以备后用! 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超 ...

随机推荐

  1. Python开发【笔记】:抓包(实时分隔)

    抓包 进行linux系统抓包,并且定时分隔防止文件太大 #!/usr/bin/env python # -*- coding:utf-8 -*- import os import sys import ...

  2. $(document).ready()方法和window.onload有什么区别?

    ①.window.onload 方法是在网页中所有的元素(包括元素的所有关联文件)完全加载到浏览器后才执行的: ②.$(document).ready()方法可以在DOM载入就绪时就对其进行操纵,并调 ...

  3. OC UITextField只允许输入两位小数

    //只能输入两位小数 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range r ...

  4. Linux下高并发socket最大连接数各种限制的调优

    1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每 ...

  5. mysql常用反斜杠命令

    mysql常用反斜杠命令 https://dev.mysql.com/doc/refman/5.7/en/mysql-commands.html https://dev.mysql.com/doc/r ...

  6. 004-js-md5

    参看地址:https://www.bootcdn.cn/blueimp-md5/

  7. .NET 三层框架

    1.三层架构 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(Presentation layer).业务逻辑层(Business Logic ...

  8. linux find grep tail

    如果在只是想匹配模式的上下几行,grep可以实现. $grep -5 'parttern' inputfile //打印匹配行的前后5行 $grep -C 5 'parttern' inputfile ...

  9. Spark DataFrame列的合并与拆分

    版本说明:Spark-2.3.0 使用Spark SQL在对数据进行处理的过程中,可能会遇到对一列数据拆分为多列,或者把多列数据合并为一列.这里记录一下目前想到的对DataFrame列数据进行合并和拆 ...

  10. Jmeter各参数含义

    1.聚合报告分析 Label:每个JMeter的element(例如HTTP Request)都有一个Name属性,这里显示的就是Name属性的值 #Sample:表示你这次测试中一共发出了多少请求, ...