spring mvc 注解访问控制器以及接收form数据的方式,包括直接接收日期类型及对象的方法
Spring 中配置扫描器
<!-- springmvc的扫描器-->
<context:component-scan base-package="com.beifeng.servlet"/>
建立Controller 类
@Controller
@RequestMapping(value="/sys/")
public class RegController {
@RequestMapping(value="reg.do",method=RequestMethod.POST)
public String reg(){
System.out.println("--用户注册--");
return "index";
}
}
注意使用注解时不能使用控制类的类名控制器的映射,否则会找不到
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
接收前台表单的数据可以通过 HttpServletRequest 也可以通过表单字段名称 也可以通过对象来接收
- 数组的接收直接写数组
- 日期类型的接收可以通过InitBinder 函数来定义日期转换的格式
/**
* 通过HttpServletRequest 获取页面数据
*
* @return
*/
@RequestMapping("reg1.do")
public String reg1(HttpServletRequest request) {
String userId = request.getParameter("userId");
String userPw = request.getParameter("userPw");
System.out.println("账号:" + userId);
System.out.println("密码:" + userPw);
return "index";
}
/**
* 获取姓名
*
* @return
*/
@RequestMapping("reg2.do")
public String reg2(String userName) {
System.out.println("姓名:" + userName);
return "index";
}
@RequestMapping("reg3.do")
public String reg3(Integer userId, String userName, Date userBrithday) {
System.out.println("账号:" + userId);
System.out.println("姓名:" + userName);
System.out.println("生日:" + userBrithday);
return "index";
}
/**
* 获取复选框的值:多个值
*
* @param xqs
* @return
*/
@RequestMapping("reg4.do")
public String reg4(String[] xqs) {
for (String xq : xqs) {
System.out.println("兴趣:" + xq);
}
return "index";
}
/**
* 通过对象来获取页面参数
*
* @param xqs
* @return
*/
@RequestMapping("reg5.do")
public String reg5(UserInfo user) {
System.out.println(user);
return "index";
}
/**
* 添加时间的属性编辑器
*/
@InitBinder
public void InitBinder(ServletRequestDataBinder bin) {
bin.registerCustomEditor(Date.class, new CustomDateEditor(
new SimpleDateFormat("yyyy-MM-dd"), true));
}