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

站长工具使用方法wordpress创意主题店铺

站长工具使用方法,wordpress创意主题店铺,网站建设产品需求文档,长春好的做网站公司有哪些自定义视图完成步骤: ● 7.2.1自定义视图完成步骤 1. 自定义视图**:** 创建一个 View 的 bean, 该 bean 需要继承自 AbstractView, 并实现 renderMergedOutputModel 方法**.** 2. 并把自定义 View 加入到 IOC 容器中 3. 自定义视图的视图处理器,使用…

自定义视图完成步骤:

7.2.1自定义视图完成步骤

1. 自定义视图**:** 创建一个 View bean, bean 需要继承自 AbstractView, 并实现

renderMergedOutputModel 方法**.**

2. 并把自定义 View 加入到 IOC 容器中

3. 自定义视图的视图处理器,使用 BeanNameViewResolver**, 这个视图处理器也需要配置**

ioc 容器

4. BeanNameViewResolver 的调用优先级需要设置一下,设置 order Integer.MAX_VAL

小的值**.** 以确保其在 InternalResourceViewResolver 之前被调用

 /*** 老师解读* 1. MyView继承了AbstractView, 就可以作为一个视图使用* 2. @Component(value = "myView"),该视图会注入到容器中, 名字/id是 myView*/@Component(value = "hspView")public class MyView extends AbstractView {@Overrideprotected void renderMergedOutputModel(Map<String, Object> model,HttpServletRequest request,HttpServletResponse response) throws Exception {​//完成视图渲染//并且可以确定我们要跳转的页面 [请求转发] /WEB-INF/pages/my_view.jspSystem.out.println("进入到自己的视图..");​//老师解读//1. 下面就是进行请求转发到 /WEB-INF/pages/my_view.jsp//2. /WEB-INF/pages/my_view.jsp 会被springmvc解析//   /springmvc/WEB-INF/pages/my_view.jsprequest.getRequestDispatcher("/WEB-INF/pages/my_view.jsp").forward(request, response);​}}
 <!--老师解读1. 配置自定义视图解析器BeanNameViewResolver2. BeanNameViewResolver可以去解析我们自定义的视图3. 配置 属性 order, 表示视图解析器执行的顺序, 值越小, 优先级越高4. 属性 order 的默认值是最低优先级 ,值为 Integer.MAX_VALUEint LOWEST_PRECEDENCE = 2147483647--><bean class="org.springframework.web.servlet.view.BeanNameViewResolver"><property name="order" value="99"/></bean>

使用

 @RequestMapping(value = "/buy")public String buy() {System.out.println("------buy()-----");return "hspView";//填写自定义视图id}

源码剖析:

视图解析过程

1.先到DispatcherServlet中央控制器, 根据视图解析的 优先级 执行对应的 视图解析器
 @Nullableprotected View resolveViewName(String viewName, @Nullable Map<String, Object> model,Locale locale, HttpServletRequest request) throws Exception {​if (this.viewResolvers != null) {for (ViewResolver viewResolver : this.viewResolvers) {//viewResolvers存放了两个视图解析器(1)InternalResourceViewResolver默认视图解析器   (2)BeanNameViewResolver自定义视图解析器View view = viewResolver.resolveViewName(viewName, locale);if (view != null) {//如果返回的视图为空,那么会继续遍历所有的视图解析器;//注意:如果 默认视图解析器 优先级在前,那么不管怎样,它都不会再执行 自定义视图解析器 //原因:默认视图解析器 一定会返回视图,因为它是通过传入的视图名build一个视图return view;}}}return null;}
2.若默认视图解析器在前,那么用 视图解析器 解析
 @Overrideprotected AbstractUrlBasedView buildView(String viewName) throws Exception {InternalResourceView view = (InternalResourceView) super.buildView(viewName);//根据viewName创建视图if (this.alwaysInclude != null) {view.setAlwaysInclude(this.alwaysInclude);}view.setPreventDispatchLoop(true);return view;}

注意:如果 默认视图解析器 优先级在前,那么不管怎样,它都不会再执行 自定义视图解析器 (因为:默认视图解析器 一定会返回视图,因为它是通过传入的视图名build一个视图)

3.若自定义视图解析器在前
 public View resolveViewName(String viewName, Locale locale) throws BeansException {ApplicationContext context = obtainApplicationContext();//context实质上就类似于ioc容器if (!context.containsBean(viewName)) {//判断context(ioc)中是否有id为viewName的bean// Allow for ViewResolver chaining...return null;}if (!context.isTypeMatch(viewName, View.class)) {//判断context(ioc)中是否有id为viewName并实现View接口的beanif (logger.isDebugEnabled()) {logger.debug("Found bean named '" + viewName + "' but it does not implement View");}// Since we're looking into the general ApplicationContext here,// let's accept this as a non-match and allow for chaining as well...return null;}return context.getBean(viewName, View.class);}

1.拿到context对象,实质上类似于ioc容器

2.//判断context(ioc)中是否有id为viewName的bean, 没有就返回null; 有就接着往下走

3.//判断context(ioc)中是否有id为viewName并实现View接口的bean 有就返回该视图 ,如果不存在传入的viewName对应的自定义视图,那么就返回null,接着走其他视图解析器

视图渲染和响应

1. 拿到view对象后, SpringMVC 调用自定义视图的 renderMergedOutputModel 方法渲染视图
http://www.yayakq.cn/news/246641/

相关文章:

  • 织梦茶叶网站模板购物网站
  • 唐山制作手机网站中国网站设计师
  • 软件定制开发一般多少钱网络优化的工作内容有哪些
  • 新手做淘宝客网站教程专业网站建设公司在线咨询
  • e站注册网站营销型网站建设推荐
  • eclipes 网站开发房地产网站建设需求说明书
  • 绵阳市建设银行网站资阳自贡网站建设平台
  • 网站开发组织架构图哈尔滨网站seo
  • 网站开发公司方案报价连云港百度推广总代理
  • 海南网站建设介绍深圳住房建设局网站申报
  • 网页设计素材网站温州手机网站制作哪家便宜
  • 网站中的滑动栏怎么做的商城网站建设套餐报价
  • 控制网站的大量访问怎么做钓鱼网站生成器
  • gis做图网站论坛怎样发帖推广
  • 在家建设一个网站需要什么门户网站 销售
  • 支付网站建设要求郑州网站建设hndream
  • 中国城乡与建设部网站ppt模板大全免费下载网站
  • 网站制作论文5000字嘉兴房产网站建设
  • 网站后台上传图片不显示wordpress png
  • 电脑网站 源码建站用帝国还是wordpress
  • 唐山市做网站衡水搜索引擎优化
  • 律师推广网站排名做班级网站的实训报告
  • 企业网站建设推广含义网络平台建设管理制度
  • 网站官网域名要多少钱龙岩做网站公司
  • 江苏城乡建设网站专门做qq小工具的网站
  • 微信公众号登录wordpress网站所有网站的名字大全
  • 成都手机模板建站网站是用什么编程语言编写的
  • 定陶区城乡建设局网站流程图制作网站
  • 设计素材网站无版权wordpress记账
  • 公需道德与能力建设培训网站四川微信网站建设公