1.在SpringMVC中使用@Controller来表示一类为控制器,这样当我们在页面中写了路径的时候SpringMVC就会根据路径找到对应的控制器来处理请求;
2.在方法中使用@RequestMapping("/jump2")可以表示页面的请求路径;
3.在方法中可以定义参数,这些参数的名字要与页面中标签的name属性的名称一样,如<input type="text" name="userName"/>,如果不一样就得不到页面传来的值;在参数中定义一个ModeMap可以把我们要传到页面的值放在里面,SpringMVC会把map里面的值设置到request.setAttributes里面,我们可以在页面中用EL表达式得到对应的值;当返回值为String类型的时候,表示这个方法结束后将要跳转到其它页面中去,这里的“success”表示方法完成时将转到success.jsp页面中去。
@RequestMapping("/jump2") public String jump2(String userName, String password, String sex, ModelMap map) { map.put("userName", userName); map.put("password", password); map.put("sex", sex); return "success"; }
4.如果页面中传来的参数过多,我们可以定义一个Pojo类,来接收页面的数值,要注意的是Pojo类中的字段名称也要和页面中标签的name属性值一样,如<input type="text" name="userName"/>如果不一样就得不到页面传来的值
@RequestMapping("/jump2") public String jump2(User user,ModelMap map) { map.put("userName", userName); map.put("password", password); map.put("sex", sex); return "success"; }
5.在方法上使用@ResponseBody可以将返回的数据转换成JSON格式,但在之前要在xxx-servlet.xml中配置一下
<!-- 基于注解风格的JSON配置 如果在一个方法上加入@responsebody注解这个方法的返回值将自动转换为json格式的数据 一般用做前台ajax的调用 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <util:list id="beanList"> <ref bean="mappingJacksonHttpMessageConverter" /> </util:list> </property> </bean> <!-- 被上面所引用 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
//会把返回的对象转换成JSON格式如果是对象是这种格式{"xx":"XXX","xx":"XXX"} //如果是数组是这种格式["arrayname":{"xx":"XXX","xx":"XXX"}] @ResponseBody public Object jump(){ Object obj = new Object(); //do sometime.. return obj }
6.使用SpringMVC进行跳转,如果使用SpringMVC,在Servlet里面使用的页面跳转方式将不能够满足我们的要求,所有的跳转都要交给Spring容器来处理:
public String jumpforward(){ //进行forward跳转 return "forward:pathname"; } public String jumpredirect(){ //进行redirect跳转 return "redirect:pathname"; }