springmvc接收参数,spring mvc 代理转发请求

首页 > 生活服务 > 作者:YD1662025-05-24 10:33:28

springmvc接收参数,spring mvc 代理转发请求(1)

Spring MVC可以接收参数的方式有以下几种:

1. 路径参数(PathVariable):通过在请求路径中使用占位符来接收参数,例如:`/users/{id}`,则`id`为路径参数。

2. 请求参数(RequestParam):通过在请求路径中使用查询参数的方式来接收参数,例如:`/users?id=1&name=john`,则`id`和`name`为请求参数。

3. 请求体参数(RequestBody):通过请求体中的数据来接收参数,一般用于接收 JSON 或 XML 格式的数据。

4. 表单参数(ModelAttribute):通过表单提交的方式来接收参数,一般用于接收表单中的各个字段的值。

5. 请求头参数(RequestHeader):通过请求头中的数据来接收参数,例如:接收客户端的版本信息、授权信息等。

1.接收简单参数,在Controller的方法后面添加相应的参数列表,Controller的参数列表要和view层传的参数名一致。

2.接收对象参数,在Controller的方法后面添加相应的实体类,实体类的属性名要和view层传的参数名一致。

Controller类

package com.zhiyou100.kfs.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

import com.zhiyou100.kfs.bean.User;

@Controller

@RequestMapping("/login")

public class LoginController {

@RequestMapping("/login.do")

public ModelAndView login(String username,String password) {//要和view层传的参数名一致

ModelAndView mv=new ModelAndView("login");

if("张三".equals(username)&&"admin".equals(password)) {

mv.addObject("name", "欢迎"+username+"!");

}else {

mv.addObject("name", "出错了!");

}

return mv;

}

@RequestMapping("/login1.do")

public ModelAndView login1(User user) {//实体类的属性名对应要和view层传的参数名一致

ModelAndView mv=new ModelAndView("login");

if("张三".equals(user.getUsername())&&"admin".equals(user.getPassword())) {

mv.addObject("name", "欢迎"+user.getUsername()+"!");

}else {

mv.addObject("name", "出错了!");

}

return mv;

}

}

和jsp

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

pageEncoding="utf-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body>

${name }

<a href="/SpringMVC/login/login.do?username=张三&&password=admin">跳转到login.do</a>

<a href="/SpringMVC/login/login1.do?username=张三&&password=admin">跳转到login1.do</a>

</body>

</html>

3.接收日期时间参数

a) 只能接受一个日期时间使用@initBinder在Controller:当接收的日期时间参数时会先经过该方法进行处理,但网页传的日期时间格式要和bider格式一样。

需要在接收日期时间参数的Controller里增加:

@InitBinder

public void initBinder(ServletRequestDataBinder binder){

//只要网页中传来的数据格式为yyyy-MM-dd 就会转化为Date类型,

binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));

}

b) 能接受多个日期时间参数,在实体类对应属性上使用@DateTimeFormart(pattern=”yyyy-MM-dd”)

4.接收对象中的对象的属性值(包装类:此处不是int等基本类型的包装类,而是对象里有个对象),例如User类里有个person对象(Person类有age属性,getter和setter)

a) 在页面传参数时name要是对象中的对象名点属性名(person.age)

personAge:<input type="text" name="person.age"/>

b) 在controller层正常用user对象接就能接到了。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.