SpringMVC使用POJO和Servlet原生API作为参数

1、使用POJO 对象绑定请求参数值

Spring MVC 会按请求参数名和 POJO 属性名进行自动匹 配,自动为该对象填充属性值。支持级联属性。  如:dept.deptId、dept.address.tel 等

这里要注意的是,按照框架或者Spring逻辑,为POJO的对应属性填充值的时候不是看有没有这个属性,而是是否存在setXxx方法,Xxx就是对应的请求参数名的首字母大写的字符串。

测试演示使用了两个entity类,当然是为了看出级联属性的效果。

User.java

public class User {
	private String username;
	private String password;
	private String email;
	private int age;
	private Address address;
	// 省略set和get方法,构造器方法
	@Override
	public String toString() {
		return "User [username=" + username + ", password=" + password + ", email=" + email + ", age=" + age
				+ ", address=" + address + "]";
	}
	
}

 

Address.java

public class Address {
	private String province;
	private String city;
	// 省略set和get以及构造器方法
	@Override
	public String toString() {
		return "Address [province=" + province + ", city=" + city + "]";
	}
}

 

表单:

username:
password:
email:
age:
province:
city:

 

目标方法:

 

@RequestMapping("/testPOJOParam")
	public String testPOJOParam(User user){
		System.out.println(user.toString());
		return SUCCESS;
}

目标方法对应的控制器类存在注解@RequestMapping("/springmvc")

 

2.使用 ServletAPI 作为入参

在实际的项目开发中难免会使用到Servlet的原生API,SpringMVC支持直接使用ServletAPI 作为目标方法的入参。MVC 的 Handler 方法可以接受如下ServletAPI 类型的参数:

 * HttpServletRequest 
   * HttpServletResponse
* HttpSession 
* java.security.Principal 
* Locale 
* InputStream 
* OutputStream
* Reader 
* Writer

比较常用的大家看一眼便知,不常用的有个印象用到了再查。下面是演示代码:

@RequestMapping("/testServletAPI")
	public void testServletAPI(Writer out) throws IOException{
		// 测试直接在页面打印出一句话
		out.write("java is good language");
}

上面的代码直接在页面打印一句话。

 

你可能感兴趣的:(框架工具)