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 + "]";
	}
}

 

表单:

<form action="springmvc/testPOJOParam">
	username:<input type="text" name="username"/>
	<br>
	password:<input type="password" name="password"/>
	<br>
	email:<input type="email" name="email"/>
	<br>
	age:<input type="text" name="age"/>
	<br>
	province:<input type="text" name="address.province"/>
	<br>
	city:<input type="text" name="address.city"/>
	<br>
	<input type="submit" value="提交">
</form> 

 

目标方法:

 

@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");
}

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值