SpingMVC_注解式开发_接收请求参数

时间:2023-03-09 22:55:48
SpingMVC_注解式开发_接收请求参数

一、逐个接收

SpingMVC_注解式开发_接收请求参数

 import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; @Controller // 表示当前类是一个处理器
@RequestMapping("/test")
public class MyController { @RequestMapping("/register.do")
public ModelAndView doRegister(String name, int age) {
// TODO Auto-generated method stub System.out.println("name=" + name);
System.out.println("age=" + age); ModelAndView mv = new ModelAndView();
mv.addObject("name", name);
mv.addObject("age", age);
mv.setViewName("/WEB-INF/jsp/welcome.jsp");
return mv;
} }

MyController

 <!--   注册组件扫描器 -->
<context:component-scan base-package="com.jmu.handlers"></context:component-scan>

springmvc.xml

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@page isELIgnored="false" %>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head> <body>
<form action="${pageContext.request.contextPath}/test/register.do"
method="post">
姓名:<input type="text" name="name"> <br>
年龄:<input type="text" name="age"> <br>
<input type="submit" value="注册">
</form>
</body>
</html>

index.jsp

 <body>
name=${name}<br>
age=${age}<br>
</body>

welcome.jsp

SpingMVC_注解式开发_接收请求参数SpingMVC_注解式开发_接收请求参数

二、解决中文乱码问题

在CharacterEncodingFilter中

SpingMVC_注解式开发_接收请求参数

在web.xml中添加

 <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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

SpingMVC_注解式开发_接收请求参数SpingMVC_注解式开发_接收请求参数

三、校正请求参数名

SpingMVC_注解式开发_接收请求参数

SpingMVC_注解式开发_接收请求参数

四、以对象形式整体接收

SpingMVC_注解式开发_接收请求参数

 public class Student {
private String name;
private int age; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
} }

Student

 import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; import com.jmu.beans.Student; @Controller
@RequestMapping("/test")
public class MyController { @RequestMapping("/register.do")
public ModelAndView doRegister(Student student) {
System.out.println("name=" + student.getName());
System.out.println("age=" + student.getAge()); ModelAndView mv = new ModelAndView();
mv.addObject("student", student);
mv.setViewName("/WEB-INF/jsp/welcome.jsp");
return mv; }
}

MyController

 <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 注册组件扫描器 -->
<context:component-scan base-package="com.jmu.handlers"></context:component-scan>
</beans>

springmvc.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>02-springmvc-Object</display-name>
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

web.xml

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%@page isELIgnored="false"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
</head> <body>
<form action="${pageContext.request.contextPath }/test/register.do"
method="post">
姓名:<input type="text" name="name" /><br> 年 龄:<input type="text"
name="age" /><br> <input type="submit" value="注册" />
</form>
</body>
</html>

index.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@page isELIgnored="false" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>welcome page</title> </head> <body>
student=${student} <br>
</body>
</html>

welcome

SpingMVC_注解式开发_接收请求参数SpingMVC_注解式开发_接收请求参数

五、域属性参数的接收

域属性参数,即对象属性,当请求参数中的数据为某类对象域属性的属性值时,要求请求参数名为“域属性名.属性”。

 public class School {
private String sname;
private String address; public String getSname() {
return sname;
} public void setSname(String sname) {
this.sname = sname;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} @Override
public String toString() {
return "School [sname=" + sname + ", address=" + address + "]";
} }

School

SpingMVC_注解式开发_接收请求参数SpingMVC_注解式开发_接收请求参数

六、路径变量

SpingMVC_注解式开发_接收请求参数

SpingMVC_注解式开发_接收请求参数