当前位置: 首页 > news >正文

南宁网站定制团队网站建设在线建站

南宁网站定制团队,网站建设在线建站,线上推广策划方案,自建网站费用学习视频#xff1a;孙哥说SpringMVC#xff1a;结合Thymeleaf#xff0c;重塑你的MVC世界#xff01;#xff5c;前所未有的Web开发探索之旅 衔接上文Spring MVC学习随笔-控制器(Controller)开发详解#xff1a;控制器跳转与作用域#xff08;一#xff09; SpingMVC中… 学习视频孙哥说SpringMVC结合Thymeleaf重塑你的MVC世界前所未有的Web开发探索之旅 衔接上文Spring MVC学习随笔-控制器(Controller)开发详解控制器跳转与作用域一 SpingMVC中request作用域的处理 代码 # 基于Model的方式 RequestMapping(view2) public String view2(Model model) {// 等同于 request.addAttribute();model.addAttribute(name, suns);return result1; } # 基于ModelMap的方式 同上 RequestMapping(view3) public String view3(ModelMap modelMap) {modelMap.addAttribute(name, suns2);return result1; }Model、ModelMap相关细节分析 通过Model、ModelMap进行作用域处理可以解决视图模板技术耦合的问题 因为SpringMVC通过视图解析器区别JSP、FreeMaker再将Model、ModelMap的数据放到request或root里面运行。 SpringMVC中提供Model和ModelMap两种方式处理request作用域他们的区别是什么 虽然两者表现形式以及声明的形参类型都不同但是在运行时SpringMVC会动态提供对应的实现类型名字是BindingAwareModelMap。所以本质上两者相同。 为什么不直接使用BindingAwareModelMap 在源码中Model接口会根据开发者使用SpringMVC或Spring WebFlux进行自动适配使用MVC开发时会使用BindingAwareModelMap而WebFlux开发时使用的是ConcurrentModel。 SpringMVC为什么会提供两种开发方式Model、ModelMap这两种开发方式更推荐哪种使用 推荐使用ModelModelMap是老系统使用的为了兼容老系统所以留着。Model可以兼容传统MVC也可以在WebFlux中使用更有利于项目维护。 如果redirect跳转数据如何跳转 SpringMVC会自动把Model或ModelMap中的数据通过的形式在url上进行拼接从而传递数据 SpringMVC中Session作用域的处理 基本使用方式及其存在的问题 session.setAttribute(name,value);RequestMapping(view) public String view1(HttpSession session){session.setAttribute(name,value);return result; } 存在问题与ServletAPI耦合在SpringMVC中不建议使用。SessionAttributes注解 存储数据 Controller RequestMapping(view3) **SessionAttributes(value name) // 声明name存在session作用域** public class View3Controller {RequestMapping(view1)public String view1(Model model) {model.addAttribute(name, xiaojr);model.addAttribute(age, 10);return result1;} } // jsp中取值 html bodyh1session attribute is ${sessionScope.name}/h1h1request attribute is ${requestScope.age}/h1 /body /html注意 Model、ModelMap把name的数据通过SessionAttributes存储在Session作用域中的同时在Request作用域中也会存储。此时Request作用域、Session作用域存储的是一个对象的引用。 删除Session作用域中的数据 SpringMVC中application作用域的处理 为什么SpringMVC没有提供application作用域 因为application这个作用域是全局唯一在开发中多用于存储全局唯一的对象被框架底层封装在开发时程序员基本不会使用其用于业务操作。 ModelAttribute注解 SpringMVC通过ModelAttribute注解接受请求参数的同时把数据存储到request作用域中。 RequestMapping(view1) public String view1(ModelAttribute(name) String name) {System.out.println(View4Controller.view1);return result2; }使用场景 传递页码时可以使用。 注意细节 细节一 如果传递的是简单变量参数则value属性必须与超级链接或表单的key名称保持一致。 如果传递的是POJO类型的请求参数则没有上述要求但是value属性会作为request作用域的名称。 细节二 ModelAttribute中value的值不能与SessionAttributes中value的值一致如果一致则会产生异常如果要把请求参数的数据也存在session作用域中需要将request作用域存储改为使用传统做法model.addAttribute(”name”,name); 什么是ModelAndView【了解】 什么是ModelAndView ModelAndView这个类型实际上是一个复合类型起到了2个方面的作用。 注意ModelAndView里面只能使用ModelMap这也是它的劣势之一。 Model 代表作用域的操作就是前面的ModelMap。View 代表跳转路径页面对应前面的四种跳转。 最终这两方面的工作统一被ModelAndView进行封装做为控制器方法的返回值使用。 总结目前控制器方法返回值 1. public String controller(); 2. public ModelAndView controller(); 注意SpringMVC处理跳转页面和作用域时把相应的内容都会封装到ModelAndView中 所以ModelAndView返回值的这种处理更加底层而返回值String的处理仅是简化开发。5.5 视图控制器 5.5.1 什么是视图控制器 视图控制器可以通过配置的方式访问受保护的视图模板简化开发。 什么是视图模板 JSP Thymeleaf FreeMarker Velocity 为什么需要保护视图模板 目前的开发方式都没有对视图模板进行保护有可能导致程序在被用户访问时产生非预期效果Bug 如何保护视图模板 将所有视图模板放置在WEB-INF下这样用户就无法通过地址直接访问视图模板了。 5.5.1 受保护的视图模板如何访问 所有的视图模板只能通过控制器forward访问:return result; return forward:/WEB-INF/jsp/result.jsp; 记得同时修改viewResolver bean idviewResolver classorg.springframework.web.servlet.view.InternalResourceViewResolverproperty nameprefix **value/WEB-INF/jsp//**property namesuffix value.jsp/ /bean5.5.2 视图控制器 虽然可以通过控制器forward访问视图模板但是直接访问页面也需要控制器因此会变得繁琐所以有了视图控制器的存在通过在配置文件(dispatcher.xml)可以直接访问 mvc:view-controller path/result3 view-nameresult3/ 注意path不能和RequestMapping的路径冲突5.5.3 视图控制器的Redirect跳转 RequestMapping(view1) public String view1() {System.out.println(View6Controller.view1);return redirect:/result4; }mvc:view-controller path/result4 view-nameresult4/5.6 静态资源处理 5.5.1 什么是静态资源 所谓静态资源指的是项目中非java代码部分的内容如 图片、js文件、css文件。 目前SpringMVC的开发中按照现有的配置内容是无法访问静态资源的。 g) 在SpringMVC底层资源请求访问DispatcherServlet后会将其请求当成控制器并调用对应的控制器方法创建对象但是在静态资源访问第一步就走不通了所以就报错404。 5.5.3 解决方式 方式一【DefaultServlet】 Tomcat提供了能够访问静态资源的DefaultServletweb.xml) 在web.xml添加DefaultServlet后的代码 方式二【default-servlet-handler】推荐 第一种开发方式的问题 default-servlet-handler开发方式 在SpringMVC的配置文件(dispatcher.xml)中配置mvc:default-servlet-handler/即可 实现原理 mvc:default-servlet-handler/标签的底层也是调用了defaultServlet进行的静态资源处理。 mvc:default-servlet-handler/标签他是如何调用defaultServlet进行静态资源处理的 他的底层是通过DefaultServletHttpRequestHandler以forward的形式调用的DefaultServlet。 mvc:default-servlet-handler/完整运行流程用户如果发起控制器的请求首先会到DispatcherServlet然后DispatcherServlet会通过RequestMappingHandlerMapiping查找控制器上RequestMapping注解并进行相应的匹配进而查找如果查找到则会通过HandlerAdapter进行处理。对于静态资源的操作也就是使用了mvc:default-servlet-handler/的处理它的请求也一样会访问DispatcherServlet没查找到则会通过SimpleUrlHandlerMapping调用DefaultServletHttpRequestHandler进而调用DefaultServlet进行静态资源的处理。 下一章Spring MVC学习随笔-文件下载和上传配置文件上传解析器multipartResolver
http://www.zqtcl.cn/news/243170/

相关文章:

  • appcan 手机网站开发wordpress首页音乐
  • 杭州响应式网站案例建筑工程网站建站方案
  • 网站访客抓取国内网站搭建
  • 凡科网站做的好不好太原网页
  • 十堰商城网站建设国外效果图网站
  • 怎么登陆建设工程网站泉州网红
  • 哈尔滨队网站网页美工跨境电商是什么意思
  • 网站规划与建设课程推广型网站建设软件
  • 山东网站建设系统网站设计哪家更好
  • 网络推广有哪些网站网络推广公司联系昔年下拉
  • 长沙专业外贸建站公司百度提交网站入口网站
  • 西安网站搭建建设定制市场营销推广策略
  • 用户等待网站速度公司网站怎么做站外链接
  • 设计新闻发布网站模板wonder audio wordpress
  • 教育与培训网站建设wordpress侧栏文章
  • 四川做网站的公司哪家好信誉好的赣州网站建设
  • seo外包网站网站的备案流程图
  • 学网站建设好么免费网页制作有哪些
  • 宁波公司网站开发招聘最便宜的视频网站建设
  • 找人做网站大概多少钱永州企业网站建设
  • 免费备案网站空间网站怎么做组织图
  • 四川省和城乡建设厅网站怎么做网站淘宝转换工具
  • 网站单页支付宝支付怎么做的排名优化公司口碑哪家好
  • 淄博网站制作服务推广做网站服务器配置
  • ppt做的好的有哪些网站有哪些广州品牌型网站建设
  • 怎么学做一件完整衣服网站网站 相对路径
  • 十大wordpress主题江门seo排名优化
  • 石家庄网站搭建定制在百度上如何上传自己的网站
  • 南宁建设厅官方网站福州中小企业网站制作
  • 模板网站建设平台昆山专业网站建设公司哪家好