1基本数据类型
在 *.jsp 表单提交数据,Contrller 接收输出
示例代码
put.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>
<form action="objectdemo" method="post">
<input type="text" name="name"/>
<input type="text" name="age"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
Controller中的对应demo:
package controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import pojo.People;
import org.springframework.stereotype.Controller;
@Controller
public class ExplainController {
//表格传参接收
@RequestMapping("demo")
public String demo(String name,int age) {
System.out.println("执行demo"+ name +" "+age);
return "main.jsp";
}
}
2对象数据类型
2.1在pojo下创建一个类,然后创建表单提交数据对应类型的变量,补全get/set/tosString**
package pojo;
public class People {
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 "People [name=" + name + ", age=" + age + "]";
}
}
2.2Controller中对应的objectdemo
//对象类型引用 在pojo下创建两个类型一样的 表单提交的属性 可以直接输出这个类对象
@RequestMapping("objectdemo")
public String objectdemo(People people) {
System.out.println("引用对象类型Controller :"+people);
return "main.jsp";
}
2.3put中的表单修改**
<form action="objectdemo" method="post">
<input type="text" name="name"/>
<input type="text" name="age"/>
<input type="submit" value="提交"/>
</form>
3.参数多的超乎你想象
表单是提交了两个数据,但Controller想多少个参数就几个参数
Controller
@RequestMapping("more")
public String more(People people,String name,int age,
HttpServletRequest request){
request.setAttribute("more", "我有很多参数");
System.out.println("引用对象类型Controller :"+people);
return "more.jsp";
}
more.jsp 接收页面,用到EL表达式 在@page 后面加上isELIgnored="false"
<body>
<hr/>
${more}
</body>
4.注解@RequestParam(value=“ ”)
value是默认值 一个值可以不写
解决表单提交的和Controller 中的 参数名不一致问题
表单中:
<body>
<form action="demo" method="post">
<input type="text" name="name1111"/>
<input type="text" name="age1111"/>
<input type="submit" value="提交"/>
</form>
</body>
Controller
@RequestMapping("demo")
public String demo(@RequestParam(“name1111”)String name,
@RequestParam(“age1111”)int age) {
System.out.println("执行demo"+ name +" "+age);
return "main.jsp";
}
@RequestParam(default-value=" ")防止参数为null,为参数设置默认值
@RequestParam(required=true)必须有这个参数,没有报异常