spring mvc 注解访问控制器以及接收form数据的方式,包括直接接收日期类型及对象的方法

时间:2024-08-26 14:37:32

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 也可以通过表单字段名称 也可以通过对象来接收

  1. 数组的接收直接写数组
  2. 日期类型的接收可以通过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));

}