1、数据响应的方式
1.页面跳转
直接返回字符串
通过ModalAndView对象返回
2.回写数据
直接返回字符串
返回对象或集合
2、页面跳转
1.返回字符串形式
直接返回字符串:此方法会将返回的字符串和视图解析器的前后缀拼接后跳转
2.返回ModalAndView对象
@Controller
public class HomeController {
@RequestMapping("/home")
public ModelAndView home() {
ModelAndView modelAndView = new ModelAndView("home"); // 指定视图名称为"home"
modelAndView.addObject("message", "Welcome to Spring MVC"); // 添加数据模型,key为"message",value为"Welcome to Spring MVC"
return modelAndView;
}
}
3、回写数据
1、直接返回字符串
在Spring MVC中,你可以直接返回一个字符串作为响应。可以使用@ResponseBody
注解将返回值转换为字符串,并将其作为响应体返回给客户端。
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MyController {
@RequestMapping("/hello")
@ResponseBody//告知框架不进行视图跳转 直接进行数据响应
public String hello() {
return "Hello, World!";
}
}
2、返回对象或集合
//复杂的
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</list>
</property>
</bean>
//简易的
<mvc:annotation-driven/>
@RequestMapping(value="/quick10")
@ResponseBody
public User save10( )throws IOException {
User user = new User();
user.setAge(18);
user.setUsername("lisi");
return user;
}
在SpringMVC的各个组件中,处理器映射器、处理器适配器、视图解析器称为SpringMVC的三大组件。使用<mvc:annotation-driven>自动加载RequestMappingHandlerMapping(处理映射器)和RequestMappingHandlerAdapter(处理适配器),可用在Spring-xml.xml配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置
同时使用<mvc:annotation-driven>默认底层就会集成jackson进行对象或集合的json格式字符串的转换