springMVC获取传递的参数
2015-06-23 22:38
645 查看
页面定义如下:
1.通过HttpServletRequest
2.通过和参数名相同的入参
3.通过别名,并指定默认值
4.通过对象(最常用)
页面定义如下:
定义对应的对象:
注意:复选框使用String[]来存储所有的值
5.参数类型转换
有时我们需要进行类型转换。如页面需要传入生日,但是传入的是字符串形式,而我们的Controller需要接收Date类型的数据,这个时候,就可以使用类型转化器了
结果为:
<html> <body> <form action="spring/cpf.do"> <input type="text" name="username"> <input type="text" name="password"> <input type="submit" value="submit"> </form> </body> </html>
1.通过HttpServletRequest
@Controller @RequestMapping("/spring") public class HelloWorldController { //表示对应的路径是/cpf.do @RequestMapping(value="/cpf.do") public String say(HttpServletRequest request, HttpServletResponse response) { String name = request.getParameter("username"); String password = request.getParameter("password"); System.out.println(name); System.out.println(password); return "cpf"; } }这种方式和Servlet完全一样,从Request中直接获得即可
2.通过和参数名相同的入参
@RequestMapping(value="/cpf.do") public String say( String username, String password, Model model) { <span style="white-space:pre"> </span>System.out.println(name); System.out.println(password); return "cpf"; }
3.通过别名,并指定默认值
@RequestMapping(value="/cpf.do") public String say(@RequestParam(value="username",defaultValue="tom") String name, @RequestParam(value="password",defaultValue="123")String password, Model model) { <span style="white-space:pre"> </span>System.out.println(name); System.out.println(password); model.addAttribute("hello", name); return "cpf"; }
4.通过对象(最常用)
页面定义如下:
<html> <body> <h2>${hello}</h2> <form action="cpf.do"> <input type="text" name="username"><br/> <input type="text" name="password"><br/> <input type="checkbox" name="hobby" value="dota"> dota <input type="checkbox" name="hobby" value="travel"> travle<br/> <input type="submit" value="submit"> </form> </body> </html>
定义对应的对象:
public class User { private String username; private String password; private String[] hobby; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String[] getHobby() { return hobby; } public void setHobby(String[] hobby) { this.hobby = hobby; } }Controller:
@Controller public class HelloWorldController { @RequestMapping(value="/cpf.do") public String say(User user) { System.out.println("username:"+user.getUsername()); System.out.println("password:"+user.getPassword()); System.out.print("hobby contains:"); for (String s : user.getHobby()) { System.out.print(s+" "); } return "cpf"; } }结果为:
注意:复选框使用String[]来存储所有的值
5.参数类型转换
有时我们需要进行类型转换。如页面需要传入生日,但是传入的是字符串形式,而我们的Controller需要接收Date类型的数据,这个时候,就可以使用类型转化器了
@Controller public class HelloWorldController { @InitBinder public void initBinder(ServletRequestDataBinder bin) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); CustomDateEditor dateEditor = new CustomDateEditor(sdf, true); bin.registerCustomEditor(Date.class, dateEditor); } @RequestMapping(value="/cpf.do") public String say(Date birthday) { System.out.println("birthday:"+birthday); return "cpf"; } }页面为:
<html> <body> <h2>${hello}</h2> <form action="cpf.do"> <input type="text" name="birthday"><br/> <input type="submit" value="submit"> </form> </body> </html>输入:
结果为:
相关文章推荐
- java exception 详解
- Java中对象JSON格式化处理时的一个坑
- 11.Eclipse安装了genymotion 没有图标显示?
- Java基础之多线程2
- Java 时间测量、耗时计算方法
- HDU 3887 Counting Offspring(DFS序求子树权值和)
- Spring MVC+Quartz 定时任务持久化
- 一个在JSP页面上使用JavaBean的例子
- java 如何跳出指定的for循环
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- eclipse中 Android SDK Manager 图标不见了
- Java格式输出
- Spring MVC JSR303数据校验
- JavaFx自定义窗体
- spring实战六之使用基于java配置的Spring
- Java SE 基础复习-IO与序列化(2)-内存
- 【java设计模式】享元模式
- java 1.5和1.6中的新特性
- java 2015.6.23
- mac搭建java web开发环境