场景

可以做类似权限管理的功能,不同的用户可以提交的不同的数据,例如张三可以提交用户名和年龄,而李四只能提交用户名,年龄就算提交了也不接收。

代码

提交的表单 index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
	<h2>Hello World !</h2>
	<form action="home/show" method="post">
		姓名:<input type="text" name="uname" value="张三1"><br/>
		年龄:<input type="text" name="age" value="26"><br/>
		<input type="submit" value="提交"/>
	</form>
	<br/>
</body>
</html>

控制器:

package com.shuoeasy.springmvc;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;


@RequestMapping("/home")
@Controller
public class Home {
	
	/**
	 * 路径 : home/show
	 */
	@RequestMapping("/show")
	public ModelAndView showPage(User user){
		System.out.println("showPage...");
		
		ModelAndView mav = new ModelAndView("home_index");
		mav.addObject("user", user);
		return mav;
	}
	
	/**
	 * 提交表单数据后先执行这里的绑定,可以做类似权限管理的功能
	 * @param binder
	 */
	@InitBinder
	public void initBinder(WebDataBinder binder){
		System.out.println("InitBinder...");
		
		// 允许的字段,默认是允许的
		binder.setAllowedFields("uname");
		
		// 不绑定的字段
		binder.setDisallowedFields("age");
	}
	
}

接手后显示的视图 home_index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
	我是mvc页面!
	<br/>
	uname:${requestScope.user.uname }
	<br/>
	age:${requestScope.user.age }
</body>
</html>

页面:

blob.pngblob.png

你可能感兴趣的文章