ModelAndView
@RequestMapping("/modelAndView")
public ModelAndView modelAndView(){
User user = new User();
user.setId(3);
user.setName("王五");
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("user",user);
modelAndView.setViewName("show");
return modelAndView;
}
@RequestMapping("/modelAndView2")
public ModelAndView modelAndView2(){
User user = new User();
user.setId(11);
user.setName("小明");
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("user",user);
View view = new InternalResourceView("/show.jsp");
modelAndView.setView(view);
return modelAndView;
}
@RequestMapping("/modelAndView3")
public ModelAndView modelAndView3(){
User user = new User();
user.setId(12);
user.setName("张三");
ModelAndView modelAndView = new ModelAndView("show");
modelAndView.addObject("user",user);
return modelAndView;
}
@RequestMapping("/modelAndView4")
public ModelAndView modelAndView4(){
View view = new InternalResourceView("/show.jsp");
ModelAndView modelAndView = new ModelAndView(view);
User user = new User();
user.setId(4);
user.setName("mav4");
modelAndView.addObject("user",user);
return modelAndView;
}
@RequestMapping("/modelAndView5")
public ModelAndView modelAndView5(){
User user = new User();
user.setId(5);
user.setName("mav5");
Map<String,User> map = new HashMap<>();
map.put("user",user);
ModelAndView modelAndView = new ModelAndView("show",map);
return modelAndView;
}
@RequestMapping("/modelAndView6")
public ModelAndView modelAndView6(){
User user = new User();
user.setId(6);
user.setName("mav6");
Map<String,User> map = new HashMap<>();
map.put("user",user);
View view = new InternalResourceView("/show.jsp");
ModelAndView modelAndView = new ModelAndView(view,map);
return modelAndView;
}
@RequestMapping("/modelAndView7")
public ModelAndView modelAndView7(){
User user = new User();
user.setId(7);
user.setName("mav7");
ModelAndView modelAndView = new ModelAndView("show","user",user);
return modelAndView;
}
@RequestMapping("/modelAndView8")
public ModelAndView modelAndView8(){
User user = new User();
user.setId(8);
user.setName("mav8");
View view = new InternalResourceView("/show.jsp");
ModelAndView modelAndView = new ModelAndView(view,"user",user);
return modelAndView;
}
@ModelAttribute
- 定义一个方法,该方法用来返回要填充到业务数据中的对象。
- 给该方法添加 @ModelAttribute 注解,该方法不是业务方法。
@RequestMapping("/modelAttribute")
public String modelAttribute(){
return "show";
}
@ModelAttribute
public User getUser(){
User user = new User();
user.setId(1);
user.setName("张三");
return user;
}
@ModelAttribute
public void getUser(Model model){
User user = new User();
user.setId(1);
user.setName("张三");
model.addAttribute("user",user);
}
@ModelAttribute
public void getUser(Map<String,User> map){
User user = new User();
user.setId(1);
user.setName("张三");
map.put("user",user);
}
session
@RequestMapping("/session")
public String session(HttpServletRequest request){
User user = new User();
user.setId(11);
user.setName("张三");
request.getSession().setAttribute("user",user);
return "test";
}
@RequestMapping("/session2")
public String session2(HttpSession session){
User user = new User();
user.setId(12);
user.setName("王五");
session.setAttribute("user",user);
return "test";
}
@SessionAttributes
在类定义处添加 @SessionAttributes 注解,只要业务方法中向域对象中存入了模型数据,则 Spring MVC 会自动把它同步到 session 中。
@SessionAttributes(value=“user”)
@SessionAttributes(types=User.class)
Spring MVC 自定义数据类型转换器
package com.southwind.converter;
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateConverter implements Converter<String, Date> {
private String pattern;
public DateConverter(String pattern){
this.pattern = pattern;
}
@Override
public Date convert(String s) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(this.pattern);
try {
return simpleDateFormat.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
- springmvc.xml 中配置自定义转换器。
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.southwind.converter.DateConverter">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd"></constructor-arg>
</bean>
<bean class="com.southwind.converter.StudentConvert"></bean>
</list>
</property>
</bean>
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
Spring MVC 集成 RESTful 架构
REST:Representational State Transfer 资源表现层状态转换
Resources:资源-URI-网络编程
Representation:资源表现层
State Transfer:状态转换
RESTful 有以下两个特点:
- URL 传参更加简洁
传统的 URL:http://localhost/8080/test?id=1
RESTful:http://localhost/8080/test/1
- 完成不同终端之间的资源共享,RESTful 提供了一套规范,不同终端之间只需要遵守该规范,就可以实现数据交互。
RESTful 具体来讲就是 4 种表现形式,HTTP 协议中的四种请求类型(GET、POST、PUT、DELETE)分别对应四种常规操作,CRUD。
- GET 用来获取资源
- POST 用来创建资源
- PUT 用来修改资源
- DELETE 删除资源
备注:最近来手感,写了个类似Tomcat服务
github地址:https://github.com/cnamep001/my_tomcat.git