参考上一篇文章:
springmvc01环境配置
注解:
在配置文件springmvc.xml里面配置要扫描的文件夹
1
| <context:component-scan base-package="cn.k2502.controller"></context:component-scan>
|
在该包下面创建一个类,添加注解@Controller
1 2
| @Controller public class Login2Controller {}
|
在该类的方法上添加注解@RequestMapping**_(value=“login1”)_**
1 2 3 4 5
| @RequestMapping(value="login1") public ModelAndView login1(){ System.out.println("我进入请求了"); return null; }
|
参数绑定:
上面的示范中,方法为无参有返回值的方法。
1对参数进行使用:
①自定义请求对象
我们可以自己需要什么,就拿取什么,如需要HttpServletRequest request, HttpSession session在方法()里面定义即可。
②表单的参数映射
如果从网页的表单中获取了数据,只要数据类型和名称可以对应上,那么就可以直接使用。
1 2 3 4 5 6 7 8 9 10 11
| @RequestMapping(value="login3") public ModelAndView login3(String username, String password,HttpSession session){ ModelAndView mvc=null; if("admin".equals(username)&&"123456".equals(password)){ mvc=new ModelAndView("success.jsp"); session.setAttribute("msg",username); }else{ mvc=new ModelAndView("index.jsp"); } return mvc; }
|
前端页面:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>首页</title> </head> <body> <form method="post" action="login3" name="form1"> 用户名:<input type="text" name="username"/> <p>密码:<input type="password" name="password"/></p> <input type="submit" value="提交"/> </form> </body> </html>
|
③自定义类(参数映射)
当表单的参数过多时,如果在方法()内写大量参数不仅不美观,而容易出错。
所以,他支持自定义类的参数映射。
类名可以随便起,但是建议见名知意。
类里面的属性名必须和表单参数对应,否则会出错。
这个时候,我们参数直接传递类即可。
1 2 3 4 5 6 7 8 9 10 11
| @RequestMapping(value="login4") public ModelAndView login4(User user, HttpSession session){ ModelAndView mvc=null; if("admin".equals(user.getUsername())&&"123456".equals(user.getPassword())){ mvc=new ModelAndView("success.jsp"); session.setAttribute("msg",user.getUsername()); }else{ mvc=new ModelAndView("index.jsp"); } return mvc; }
|
2对返回结果使用:
①用Model代替HttpSession传递信息
②用String代替ModelAndView返回结果
1 2 3 4 5 6 7 8 9
| @RequestMapping(value="login5") public String login5(User user, Model model){ if("admin".equals(user.getUsername())&&"123456".equals(user.getPassword())){ model.addAttribute("user",user); return "success.jsp"; }else{ return "index.jsp"; } }
|
原理:手动的拆分数据,使得视图和数据分离,能够获得更大的灵活性。