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