注:在springmvc入门的基础上进行操作
1.springmvc-servlet.xml
<!-- 开启扫描 --> <context:component-scan base-package="com.demo.contoller"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> <!-- 开启spring mvc注解 --> <mvc:annotation-driven/> |
2.Web.xml
<servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> |
3.jsp
<body> <form action="login.do"method="post"> 用户名<input type="text" name="uname"><br>密 码<input type="password" name="pwd"><br> <input type="hidden"name="choose" value="1"> <input type="submit"value="登录"> </form> </body> |
4.在中
4.1单个属性的转调
a.RequestMapping
@RequestMapping(value="/login.do",params="choose=2",method=RequestMethod.GET)//value对应3中action,params对应from中属性,method对应from中method public String login2(String uname,String pwd) { System.out.println("进入choose=2的get请求方法"); return null; }
@RequestMapping(value="/login.do",params="choose=2",method=RequestMethod.POST) public String login(String uname,String pwd) { System.out.println("进入choose=2的post请求方法"); return null; } @RequestMapping(value="/login.do",params="choose=1") public String login1(String uname,String pwd) { System.out.println("进入choose=1的方法"); return null; } |
b.SessionAttributes(将ModelMap中指定的属性放到session中)
@Controller @SessionAttributes({"username"})//usernama代表存在map中的key publicclass UserController {
@RequestMapping(value = "/login.do", params = "choose=2", method = RequestMethod.GET) public String login2(String uname, String pwd, ModelMap map) { System.out.println("进入choose=2的get请求方法"); System.out.println("用户名:" + uname); map.addAttribute("username", uname); return"forward:index.jsp"; }
@RequestMapping(value = "/login.do", params = "choose=2", method = RequestMethod.POST) public String login(String uname, String pwd, ModelMap map) { System.out.println("进入choose=2的post请求方法"); System.out.println("用户名:" + uname); map.addAttribute("username", uname); return"forward:index.jsp"; }
@RequestMapping(value = "/login.do", params = "choose=1") public String login1(String uname, String pwd) { System.out.println("进入choose=1的方法"); returnnull; } } |
c.ModelAttribute注解void返回值的方法
@Controller public class HelloModelController {
@ModelAttribute public void populateModel(@RequestParam("username") String abc, Model model) { model.addAttribute("attributeName", abc); }
@RequestMapping("/helloWorld") public String helloWorld() { return " forward:index.jsp "; }
}
|
4.2对象的转调
1.创建一个对象
publicclass User {
private String username; private String pwd;
public String getUsername() { returnusername; }
publicvoid setUsername(String username) { this.username = username; }
public String getPwd() { returnpwd; }
publicvoid setPwd(String pwd) { this.pwd = pwd; }
@Override public String toString() { return"User [username=" + username + ", pwd=" + pwd + "]"; }
} |
2.在controller中
@Controller publicclass HelloModelController {
@ModelAttribute public User populateModel(User user) { returnuser; }
@RequestMapping("/helloWorld") public String helloWorld() { System.out.println("进入...."); return"forward:index.jsp"; }
} |
3.对象合并
package com.demo.pojo;
publicclass User {
private String username; private String pwd; private String love;
public String getLove() { returnlove; }
publicvoid setLove(String love) { this.love = love; }
public String getUsername() { returnusername; }
publicvoid setUsername(String username) { this.username = username; }
public String getPwd() { returnpwd; }
publicvoid setPwd(String pwd) { this.pwd = pwd; }
@Override public String toString() { return"User [username=" + username + ", pwd=" + pwd + ", love=" + love + "]"; }
}
|
@Controller publicclass HelloModelController {
@ModelAttribute public User populateModel() { User user=new User(); user.setLove("小丽"); returnuser; }
@RequestMapping("/helloWorld") public String helloWorld(User user) { System.out.println("进入...."); return"forward:index.jsp"; }
} |
5.jsp中显示
<body> <h1>request作用域:${requestScope.user}</h1> </body> |