最近我决定尝试用Spring MVC学习Thymeleaf。目前我正在存储html正文片段,如img,iframe等。使用带有 UTF-8 编码和西里尔符号的百里香叶标签将此 html 片段注入一个通用 html 页面后,出现了问题。更准确地说,这些 html 片段来自 Spring 控制器的 Model 属性。是否可以仅将片段注入到一个通用 html 页面中,如下所示:
<html xmlns:th="https://www.thymeleaf.org">
<head></head>
<body>
[(${contents})] <!-- contents is that fragment I want to inject -->
</body>
</html>
控制器的请求方法如下所示:
@GetMapping("/getArticle/{id}")
public String getArticle(@PathVariable Long id, Model model) throws IOException {
Article article = articleService.getById(id);
String contents = new String(Files.readAllBytes(Paths.get(article.getText())));
model.addAttribute("contents", contents);
return "news//article";
}
内容插入片段示例:
<h1>Кириллица</h1>
<br/><iframe style='width: 30%; height: 35%;' src='link'></iframe><br/>
Классный видос, да?
结合前面两个列表的结果是这样的
正如我之前提到的,我遇到了麻烦,我有一些曲线符号,而不是俄罗斯的。此外,我应该注意到,在没有注入的正常页面加载情况下,所有的俄语符号都可以正确显示。Spring配置中有我的ViewResolver和TemplateResolver:
@Bean
public SpringResourceTemplateResolver templateResolver() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setApplicationContext(applicationContext);
templateResolver.setPrefix("/WEB-INF/views/");
templateResolver.setSuffix(".html");
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCacheable(true);
return templateResolver;
}
@Bean
public ThymeleafViewResolver viewResolver() {
ThymeleafViewResolver thymeleafViewResolver = new ThymeleafViewResolver();
thymeleafViewResolver.setCharacterEncoding("UTF-8");
thymeleafViewResolver.setContentType("text/html; charset=UTF-8");
return thymeleafViewResolver;
}
因此,接下来的问题是:是否可以直接注入从控制器接收的 html 代码,该代码使用具有正确的 UTF-8 编码而没有曲线符号的正确 UTF-8 编码作为属性注入?
您可以这样做,但是您至少需要修改以下代码行:
String contents = new String(Files.readAllBytes(Paths.get(article.getText())));
对此:
String contents = Files.readString(Paths.get(article.getText()), StandardCharsets.UTF_8);
这使用带有java.nio.charset.StandardCharsets.UTF_8
字符集的 readString()
方法。否则,来自 readAllBytes
() 的字节将以其他(非 UTF-8)编码写入字符串 - 可能取决于 JVM 启动时拾取的默认字符集。
然而,为了学习Thymeleaf,我建议查看Thymeleif片段(如果您还没有这样做),因为这些片段是为此而设计的。
这将引导您进入具有很大灵活性的模板布局。
我不明白,如果html模板与我在ModelAndView中获得的属性链接,如何将RESTFull服务的@Controller更改为@RestController 在胸腺叶模板中 但我想进入索引页面,在后台获取用户名 我可以使用ajax来更新标记“p”,但这样使用thymeleaf并没有什么好处,我可以使用jsp。那么,在Rest时使用thymeleaf的最佳方式是什么?它是否合理?
我正在为一位位于巴西的客户开发一个网站。他的网站的一部分显示了用户的反馈/评论。 以下是一个例子: 正确版本: “这是我的一分钟!” 当我向用户输出时,显示如下内容: 不正确的版本: “这是我的一分钟!” 我将这些评论保存到mySQL数据库(Hostgator),并将数据库排序规则设置为“utf8\U unicode\U ci”。 在超文本标记语言的顶部,我声明了以下内容: 我使用Laravel
问题内容: 我想抢先获取要在中加载的网页的HTML代码,使用正则表达式解析它,并仅显示所需的HTML代码,同时让该网页仍然认为它已加载了所有内容。 有什么方法可以通过或类似方法来做到这一点? 编辑:我尝试过此: 该接口永远不会被调用 问题答案: 不得不使用HttpClient。无需Cookie,只需解析html:
问题内容: 我在win7(x64)上安装了标准XAMPP。在过去的项目中遇到了编码方面的麻烦,其中mysql编码与php enconding不匹配,而php enconding有时又以其他编码形式输出html,因此,我决定始终使用utf-8对所有内容进行编码。 我刚刚开始使用html标记,并且已经遇到了麻烦。 我的页面是使用utf-8保存的( 我认为 没有BOM ) // update:事实并非如
本章是由 Alex Cabal 最初撰写在 PHP Best Practices 中的,我们使用它作为进行建议的基础。 这不是在开玩笑。请小心、仔细并且前后一致地处理它。 目前,PHP 仍未在底层实现对 Unicode 的支持。虽然有很多途径可以确保 UTF-8 字符串能够被正确地处理,但这并不是很简单的事情,通常需要对 Web 应用进行全方面的检查,从 HTML 到 SQL 再到 PHP。我们将
我正在尝试在我的应用程序中开发一个新的密码功能。当用户打开设置新密码页面时,它有3个输入字段:新密码,再次输入新密码,以及一个隐藏字段uuId。有了这个uuid可以帮助我正确更新数据库记录。我已经使用了双控制器方法,但有些地方出了问题,因为uuid字段没有填充。