springmvc_接收前台页面表单数据

在实际开发中有可能会有这样的问题,就是表单中input的name和spring mvc方法中的
参数名不一致,这时可以使用@RequestParam()注解 来解决这个问题,这个注解中有三个属性:
  ◾value:指定请求参数的名称,即表单中input的name值。
  ◾name:同value,两者只能使用一个
  ◾required:指定该参数是否是必须传入的,boolean类型。
  若为 true,则表示请求中所携带的参数中必须包含当前参数。
  若为 false,则表示有没有均可。
  ◾defaultValue:指定当前参数的默认值。如果请求中没有该参数,
  则当前方法参数将取该默认值。

前台页面表单参数与controller参数一致

前台表单页面index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>

<form action="/regist.do" method="post">
  姓名:<input type="text" name="username">
  <br>
  年龄:<input type="text" name="age">
  <br>
  <input type="submit" value="提交">
</form>
</body>
</html>

控制器Controller

方法的参数名要和前台页面文本框的名字一致,这样参数的值与前台页面的文本框值是相同的

package com.davis.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class Params {
  @RequestMapping("/regist.do")
  public ModelAndView getParams01(String username, int age)throws Exception{
      //方法的参数名要和前台页面文本框的名字一致,这样参数的值与前台页面的文本框值是相同的
      ModelAndView mv=new ModelAndView();
      mv.addObject("username",username);
      mv.addObject("age",age);
      mv.setViewName("first");
      return mv;
  }
}

跳转响应页面first.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>FirstJsp</title>
</head>
<body>
${hello}
姓名:${username}
<br>
年龄:${age}
</body>
</html>

前台页面表单参数与controller参数不同

方法的参数名和前台页面文本框的名字不同,要加注解@RequestParam

  @RequestMapping("/regist.do")
  public ModelAndView getParams02(@RequestParam(name="username") String g_username, 
  @RequestParam("age") int g_age)throws Exception{