场景
可以做类似权限管理的功能,不同的用户可以提交的不同的数据,例如张三可以提交用户名和年龄,而李四只能提交用户名,年龄就算提交了也不接收。
代码
提交的表单 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>
页面: