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

spring-boot(thymeleaf前端框架,简单了解)、( 跨域请求)

Thymeleaf模板引擎

Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎,类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。CMS

FreeMaker 新闻详细 生成.html页面

detail.flt

data

Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用,

SpringBoot推荐的Thymeleaf;

语法更简单,功能更强大;

引入thymeleaf

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

Thymeleaf使用

下面是所下载依赖中的一个文件关于thymleaf默认配置

@ConfigurationProperties(prefix = "spring.thymeleaf")
public class ThymeleafProperties {

    private static final Charset DEFAULT_ENCODING = Charset.forName("UTF-8");

    private static final MimeType DEFAULT_CONTENT_TYPE = MimeType.valueOf("text/html");

    public static final String DEFAULT_PREFIX = "classpath:/templates/";

    public static final String DEFAULT_SUFFIX = ".html";
      //

只要我们把HTML页面放在classpath:/templates/,thymeleaf就能自动渲染;  

列创建templates/hello.html

导入thymeleaf的命名空间

<html lang="en" xmlns:th="http://www.thymeleaf.org">

注:th名字可以任意,后面即用该名字的标签引用thymeleaf 

创建一个controller 

package com.zking.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller//跳视图用这个
public class HelloController {@RequestMapping("/hello")public String hello(Model model){model.addAttribute("msg","hello thymeleaf!");return "hello";}}

再在 hello.html中加入

<div th:text="${msg}"></div>//然后运行

 跨域请求

跨域请求是指从一个域名的网页去请求另一个域名的资源。浏览器出于安全考虑,默认情况下不允许这种跨域请求。但是,通过一些配置可以允许特定的跨域请求。

测试

var token = "amdasdfjaskjf12asdf";
var xhr = new XMLHttpRequest();
xhr.open('GET','http://127.0.0.1:8083/hello');
xhr.setRequestHeader("x-access-token",token);
xhr.send(null);
xhr.οnlοad=function(e){var xhr=e.target;console.log(xhr.responseText);
}

方式一:@CrossOrigin

注释到你要打开跨域请求的方法上

@CrossOrigin
@RequestMapping("/hello")
public String hello(Model model){model.addAttribute("msg","hello thymeleaf!");return "hello";
}

方式二@Configuration注册corsFilter过滤器

把前面的@CrossOrigin注释掉

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
@Configuration
public class CorsConfig {
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); //允许任何域名
        corsConfiguration.addAllowedHeader("*"); //允许任何头
        corsConfiguration.addAllowedMethod("*"); //允许任何方法
        return corsConfiguration;
    }
 
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); //注册
        return new CorsFilter(source);
    }
}


http://www.mrgr.cn/news/64716.html

相关文章:

  • 第3章 CentOS系统管理
  • 【双指针】【数之和】 LeetCode 633.平方数之和
  • 数据迁移: 安全高效转移数据, 满足企业业务需求和技术改进
  • 23.智能停车计费系统(基于springboot和vue的Java项目)
  • Cesium的PickModel浅析
  • 开源 AI 智能名片 2 + 1 链动模式 S2B2C 商城小程序中积分使用价值的拓展策略
  • 【LwIP源码学习5】网口接收数据处理过程
  • 数据挖掘(七)
  • 【设计模式系列】总览
  • ‌【元素周期表】氢
  • LeetCode 3226. 使两个整数相等的位更改次数
  • 11.3笔记
  • 图解大模型训练系列:序列并行1,Megatron SP
  • 图像滤波技术详解与实践应用
  • 如何评价mamba,是一个比conda更优秀的包管理器吗?
  • RSA算法:公钥加密的实现与应用
  • 考研要求掌握的C语言(冒泡排序专题)
  • [Android]从FLAG_SECURE禁止截屏看surface
  • 周报_2024/11/3
  • 访问者模式:将操作与对象结构分离的设计模式
  • 插值表达式
  • 提高交换式网络可靠性之STP配置
  • modelscope下载Qwen2.5 72B 模型方法
  • Automattic 和 Matt Mullenweg 要求驳回 WP Engine 诉讼案中的关键索赔
  • GPRS是什么?
  • 嵌入式数据存储小记(bss,data,text,stack,heap)