SpringMVC中的小知识

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";
}

 

你可能感兴趣的:(springMVC)