spring之在 thymeleaf 中使用自定义标签

yjmyzz 阅读:16 2024-11-01 17:39:52 评论:0

如果我在 spring-boot 项目中添加一些自定义标签,是否可以在基于 thymeleaf 的文件中使用它们?例如,如果我在我的 TLD 文件中定义了这个标签(放在目录/src/main/resources/static 中):

  <tag> 
    <name>Input</name> 
    <tag-class>org.store.custom.taglib.form_control.InputTag</tag-class> 
  </tag> 

我可以这样使用它吗:
<p th:case="'Input'"><f:Input/></p> 

有谁知道这是否可能?

更新

我试过了,但是当我运行应用程序时,自定义标签不会被处理成相应的标签:
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="/form.tld" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"> 
<head> 
  <title>cadastro</title> 
</head> 
<body> 
  <div class="panel panel-default"> 
    <div class="panel-heading"> 
      <h3 class="panel-title">cadastro</h3> 
    </div> 
    <div class="panel-body"> 
      <f:form th:attr="action=@{/__${command.getClass().getSimpleName()}__/cadastra}"> 
        <div th:each="item : ${command['class'].declaredFields}"> 
          <div th:each="item2 : ${item.declaredAnnotations}"> 
            <div th:switch="${item2.annotationType().simpleName}" th:with="index=${itemStat.index}"> 
              <p th:case="'Checkbox'"><f:Checkbox/></p> 
              <p th:case="'DataList'"><f:DataList/></p> 
              <p th:case="'Input'"><f:Input/></p> 
              <p th:case="'Radiobutton'"><f:Radiobutton/></p> 
              <p th:case="'Select'"><f:Select/></p> 
              <p th:case="'Textarea'"><f:Textarea/></p> 
            </div> 
          </div> 
        </div> 
      </f:form> 
    </div> 
  </div> 
</body> 
</html> 

请您参考如下方法:

不。Thymeleaf 的基本原则是不应该存在外星人标签。 (仅标准 html)。所有动态内容都是通过自定义属性添加的。


标签:Spring
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号