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

广告网页设计宁波seo推广优化怎么做

广告网页设计,宁波seo推广优化怎么做,jsp环保主题网站代做,网页布局的设计步骤Spring MVC 视图解析器详解 1. 视图解析器概述 视图解析器(ViewResolver)是 Spring MVC 的核心组件,负责将控制器返回的视图名称(如 success)转换为具体的 View 对象(如 Thymeleaf 模板或 JSP 文件&#x…

Spring MVC 视图解析器详解


1. 视图解析器概述

视图解析器(ViewResolver)是 Spring MVC 的核心组件,负责将控制器返回的视图名称(如 success)转换为具体的 View 对象(如 Thymeleaf 模板或 JSP 文件)。Spring 提供了多种视图解析器,支持不同的模板引擎和渲染方式。


2. 常用视图解析器详解

1. InternalResourceViewResolver

作用:解析 JSP 或其他服务器端包含(JSP/Servlet)的视图,默认用于传统 JSP 开发

配置方式

@Configuration
public class WebConfig implements WebMvcConfigurer {@Beanpublic InternalResourceViewResolver internalResourceViewResolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/WEB-INF/views/"); // 视图文件路径前缀resolver.setSuffix(".jsp");            // 视图文件后缀resolver.setOrder(1);                  // 设置优先级(数值越小优先级越高)return resolver;}
}

使用示例

@Controller
public class MyController {@GetMapping("/jsp")public String jspView() {return "hello"; // 实际路径:/WEB-INF/views/hello.jsp}
}

2. ThymeleafViewResolver

作用:解析 Thymeleaf 模板文件,需配合 Thymeleaf 依赖。

依赖:需添加 Thymeleaf 依赖:

<dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring5</artifactId><version>3.0.12.RELEASE</version>
</dependency>

配置方式

@Configuration
public class ThymeleafConfig {@Beanpublic SpringTemplateEngine templateEngine() {SpringTemplateEngine engine = new SpringTemplateEngine();engine.setTemplateResolver(templateResolver());return engine;}@Beanpublic SpringResourceTemplateResolver templateResolver() {SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();resolver.setPrefix("classpath:/templates/"); // 模板文件路径resolver.setSuffix(".html");resolver.setTemplateMode("HTML5");return resolver;}@Beanpublic ThymeleafViewResolver thymeleafViewResolver() {ThymeleafViewResolver resolver = new ThymeleafViewResolver();resolver.setTemplateEngine(templateEngine());resolver.setCharacterEncoding("UTF-8");resolver.setOrder(0); // 设置优先级return resolver;}
}

使用示例

@Controller
public class MyController {@GetMapping("/thymeleaf")public String thymeleafView() {return "hello"; // 实际路径:src/main/resources/templates/hello.html}
}

3. FreeMarkerViewResolver

作用:解析 FreeMarker 模板文件。

依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

配置方式(Spring Boot 自动配置):

# application.properties
spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.suffix=.ftl

使用示例

@Controller
public class MyController {@GetMapping("/freemarker")public String freemarkerView() {return "hello"; // 实际路径:src/main/resources/templates/hello.ftl}
}

4. ContentNegotiatingViewResolver

作用:根据请求的 Accept 头或扩展名动态选择视图解析器,常用于 RESTful API 多媒体格式支持

配置方式

@Configuration
public class WebConfig implements WebMvcConfigurer {@Beanpublic ContentNegotiatingViewResolver contentNegotiatingViewResolver() {ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();List<ViewResolver> resolvers = new ArrayList<>();resolvers.add(new InternalResourceViewResolver()); // JSPresolvers.add(new ThymeleafViewResolver());        // Thymeleafresolver.setViewResolvers(resolvers);return resolver;}
}

使用场景

  • 请求 /api/data.json → 返回 JSON 格式。
  • 请求 /api/data.html → 返回 HTML 模板。

5. BeanNameViewResolver

作用:根据视图名称直接查找 BeanFactory 中的 View Bean,无需配置前缀/后缀

配置示例

@Bean
public View myView() {InternalResourceView view = new InternalResourceView();view.setUrl("/WEB-INF/views/custom.jsp");return view;
}@Bean
public BeanNameViewResolver beanNameViewResolver() {BeanNameViewResolver resolver = new BeanNameViewResolver();resolver.setOrder(2); // 优先级最低return resolver;
}

使用示例

@Controller
public class MyController {@GetMapping("/bean")public String beanView() {return "myView"; // 直接匹配 Bean 名称}
}

3. 核心属性说明

视图解析器的通用属性:

属性说明示例
prefix视图文件的路径前缀(如 /WEB-INF/views/)。resolver.setPrefix("/templates/")
suffix视图文件的后缀(如 .jsp, .html)。resolver.setSuffix(".ftl")
order优先级(数值越小优先级越高)。resolver.setOrder(0)
viewClass指定视图实现类(如 InternalResourceView)。resolver.setViewClass(ThymeleafView.class)

4. 视图解析流程
  1. 请求处理:控制器方法返回视图名称(如 success)。
  2. 解析匹配:Spring 按 order 从小到大顺序调用视图解析器。
  3. 生成 View:第一个匹配的解析器将名称转换为具体 View 对象(如 Thymeleaf 模板)。
  4. 渲染响应View 对象填充数据并生成最终 HTML。

5. 总结表格
视图解析器适用场景核心配置属性
InternalResourceViewResolverJSP 或传统 Servlet 开发prefix, suffix, viewClass = InternalResourceView
ThymeleafViewResolverThymeleaf 模板开发templateResolver, templateEngine
FreeMarkerViewResolverFreeMarker 模板开发prefix, suffix
ContentNegotiatingViewResolver动态选择视图格式(如 JSON/HTML)viewResolvers(集合其他解析器)
BeanNameViewResolver直接绑定 Bean 名称到 Vieworder(通常最低优先级)

6. 常见问题与解决方案
  • 视图文件找不到
    • 检查 prefix/suffix 配置是否正确。
    • 确认视图文件路径(如 src/main/resources/templates)。
  • 多个解析器冲突
    • 通过 order 属性调整优先级。
    • 确保不同解析器的 prefix 不重叠。
  • Thymeleaf/Freemarker 配置失败
    • 添加对应依赖并检查模板引擎配置(如 templateResolver)。

关键总结

  1. 选择解析器:根据项目使用的模板引擎(如 Thymeleaf、FreeMarker)选择对应解析器。
  2. 配置优先级:通过 order 确定解析器处理顺序,避免冲突。
  3. 路径规范:确保 prefix/suffix 正确指向视图文件位置。
  4. 混合使用:通过 ContentNegotiatingViewResolver 支持多格式响应(如 RESTful API)。
http://www.dtcms.com/wzjs/392450.html

相关文章:

  • 武汉公司注册网站网站监测
  • 嘉兴市建设局网站百度域名注册官网
  • 外贸网站建设书籍网络营销有哪几种方式
  • 友情手机站什么网站都能进的浏览器
  • 网站推广优化教程腾讯企点注册
  • 广州黄埔网站制作百度广告投放收费标准
  • 企业网站维护服务北京seo外包 靠谱
  • 南京移动网站建设近三年成功的营销案例
  • 怎样优化网站 优帮云seo发帖论坛
  • 招标项目怎么查询乐陵seo外包公司
  • 织梦cms做网站怎么样何鹏seo
  • 做网站怎么防止被黑武汉企业seo推广
  • 收录网站查询长沙官网seo技术厂家
  • 免费制作个人网站的软件网页设计一般用什么软件
  • 深圳专业做网站哪家好谈谈你对网络营销的看法
  • 网易博客 wordpress网页seo搜索引擎优化
  • 合肥网站建设怎么做下载百度
  • 重庆做网站开发的公司有哪些软文案例500字
  • 外贸网站建设可以吗磁力狗在线
  • 网站效果演示seo指的是
  • 新闻网站开发素材淘宝运营培训班
  • 大兴智能网站建设哪家好口碑营销什么意思
  • 网站站内交换链接怎么做海口seo网络公司
  • 品牌大气的网站设计网上推广用什么平台推广最好
  • 做网站前台模型要做什么呢国外媒体报道
  • 如何查询网站域名备案信息淘宝seo培训
  • 百度商桥代码怎么加到网站上关键词营销优化
  • 泸县做网站公司南宁seo优化
  • 鄂州网站建设推广报价有人看片吗免费观看视频
  • 网站建设活动海报郑州网络营销公司哪家好