zoukankan      html  css  js  c++  java
  • SpringMVC(五):@RequestMapping下使用@RequestParam绑定请求参数值

    在处理方法入参使用@RequestParam可以把请求参数传递给请求方法,@RequestParam包含的属性值:

    --- value :参数名称

    --- required :是否必须,默认为true,表示请求参数中必须包含对应的参数,否则抛出异常。

    --- defaultValue:当请求参数缺少或者有请求参数但值为空时,值采用该设置值。

    示例:

    1)在HelloWord.java中添加testRequestParam方法:

    package com.dx.springlearn.handlers;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
    
    @Controller
    @RequestMapping("class_requestmapping")
    public class HelloWord {
        private static String SUCCESS = "success";
    
        @RequestMapping("/testRequestParam")
        public String testRequestParam(@RequestParam(value = "username") String username,
                @RequestParam(value = "address") String address,
                @RequestParam(value = "age", required = false, defaultValue = "0") int age) {
            System.out.println("testRequestParam, username: " + username + ",address: " + address + ",age: " + age);
            return SUCCESS;
        }
    }

    2)在index.jsp中插入链接html:

        <a
            href="class_requestmapping/testRequestParam?username=abc&address=def&age=26">testRequestParam</a>
        <br>

    3)测试。

    当请求url为:http://localhost:8080/SpringMVC_01/class_requestmapping/testRequestParam?username=abc&address=def&age=26

    打印信息为:testRequestParam, username: abc,address: def,age: 26

    当请求url为:http://localhost:8080/SpringMVC_01/class_requestmapping/testRequestParam?username=abc&address=def&age=

    抛出异常:

    Jan 04, 2018 8:02:53 PM org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleTypeMismatch
    警告: Failed to bind request element: org.springframework.beans.TypeMismatchException: 
    Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException:
    For input string: ""

    解决方案,把age定义类型修改为Integer

    当请求url为:http://localhost:8080/SpringMVC_01/class_requestmapping/testRequestParam?username=abc&address=def

    打印信息为:testRequestParam, username: abc,address: def,age: 0

    当请求url为:http://localhost:8080/SpringMVC_01/class_requestmapping/testRequestParam?username=abc

    抛出异常:

    HTTP Status 400 - Required String parameter 'address' is not present
  • 相关阅读:
    3. 尾缀
    Cocos工程命名规则整理(node部分)
    3.1-3.3 HBase Shell创建表
    2.11-2.12 HBase的数据迁移常见方式
    2.8-2.10 HBase集成MapReduce
    2.7 HBase架构深入剖析
    2.3-2.6 HBase java API
    2.1-2.2 HBase数据存储
    1.6-1.8 HBase表的物理模型
    1.4-1.5 HBase部署及基本使用
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/8195592.html
Copyright © 2011-2022 走看看