SpringWebMVC

tech2025-02-12  9

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

最新回复(0)