SpringMVC接收前端页面参数的4种方式
程序员文章站
2024-03-23 17:29:46
...
功能类:
/**
* 接收参数:
* 1.接收普通参数
* 2.使用对象接收参数
* 3.HttpServletRequset接收参数(不推荐!)
* 4.URL地址提取数据 --> RESTful风格
* 注意事项:
* ①如果传参类型不匹配,则会报400错误
* ②接收日期格式:
* 后台->前台:日期getter方法上添加注解--> @JsonFormat(pattern="yyyy-MM-dd hh:mm:ssS",timezone="GMT+8")
* 前台->后台:日期setter方法上添加注解--> @DateTimeFormat(pattern="yyyy-MM-dd")
* ③中文编码问题:tomcat8已经解决get请求乱码
* post请求:SpringMVC框架本身没有处理请求编码,需要配置一个spring内置请求编码过滤器
* @author 郑清
*/
@Controller
public class LoginController {
/*
* 1.接收普通参数
*/
@RequestMapping("/login")
@ResponseBody
public void login(String username,String password){ //形参名称与传递参数一致
System.out.println(username+"-->"+password);
}
@RequestMapping("/login1")
@ResponseBody
public void login1(@RequestParam("username")String name,String password){ //形参名称与传递参数不一致
System.out.println(name+"-->"+password);
}
/*
* 2.使用对象接收参数
* 注意:在对象部分前面加了一个日期,而日期格式的数据接收需要在日期setter方法上,添加注解 --> @DateTimeFormat(pattern="yyyy-MM-dd")
*/
@RequestMapping("/login2")
@ResponseBody
public void login(User u){
System.out.println(u);
}
/*
* 3.HttpServletRequset接收参数(不推荐使用-->why?-->又回到了最初的代码,不能体现SpringMVC的作用了...)
*/
@RequestMapping("/login3")
@ResponseBody
public void login(HttpServletRequest req){
System.out.println(req.getParameter("username")+"-->"+req.getParameter("password")+"-->"+req.getParameter("date"));
}
/*
* 4.URL地址提取数据 --> RESTful风格
*/
@RequestMapping("/login4/{username}/{id}")
@ResponseBody
public void login(@PathVariable("username")String username,@PathVariable("id")Integer id){
System.out.println(username+"-->"+id);
}
}
User类:
/**
* 日期格式处理:
* 从后台向前台-->在日期get属性字段上添加一个格式化注解 --> @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
* 从前台向后台(异常的状态码是400,类似于struts2转换异常) --> 在日期setter方法上,添加注解 --> @DateTimeFormat(pattern="yyyy-MM-dd")
* @author 郑清
*/
public class User {
private String username;
private String password;
private Date date;
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8") //日期格式化注解
public Date getDate() {
return date;
}
@DateTimeFormat(pattern="yyyy-MM-dd")
public void setDate(Date date) {
this.date = date;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [username=" + username + ", password=" + password + ", date=" + date + "]";
}
}
jsp前端页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>1.接收普通参数</h1>
<form action="/zq/login" method="post" >
用户名:<input type="text" name="username" ><br/>
密 码:<input type="text" name="password" ><br/>
<input type="submit" >
</form>
<h1>2.使用对象接收参数</h1>
<form action="/zq/login2" >
用户名:<input type="text" name="username" ><br/>
密 码:<input type="text" name="password" ><br/>
日 期:<input type="text" name="date" ><br/>
<input type="submit" >
</form>
<h1>3.HttpServletRequset接收参数</h1>
<form action="/zq/login3" >
用户名:<input type="text" name="username" ><br/>
密 码:<input type="text" name="password" ><br/>
日 期:<input type="text" name="date" ><br/>
<input type="submit" >
</form>
<h1>4.URL地址提取数据</h1>
<a href="/zq/login4/郑清/18">RESTful风格</a>
</body>
</html>
web.xml配置post请求编码过滤器:
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
最后要注意导入所需要的jar包哦!!!
推荐阅读
-
SpringMVC接收前端页面参数的4种方式
-
springmvc和js前端的数据传递和接收方式(两种)
-
springmvc和js前端的数据传递和接收方式(两种)
-
解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题
-
SpringMVC中控制器接收JSP页面表单的参数接收方式详解及细节注意(400错误)
-
SpringMVC向页面传递参数的5种方式
-
SpringMVC 页面传递参数到controller的五种方式
-
springmvc中接收页面参数传递的几种方式
-
SpringMVC四种controller接收参数的方式,三种controller向界面传递参数的方法
-
springmvc后台接收前台页面传递参数的方式