【问题标题】:Velocity solution like Thymeleaf速度解决方案,如 Thymeleaf
【发布时间】:2017-04-09 05:10:09
【问题描述】:

我想知道当我在 Spring 中有一个带有属性的对象时,我是否可以使用像 Thymeleaf 这样的 Velocity 模板,比如说,(product.courseName),我想以这种方式将它发送到 HTML 页面

h1 th:text="${product.courseName}" HTML 示例课程名称 /h1

所以我可以直接显示它...

Thymeleaf 让我将 HTML 开发与 Spring Coding 隔离开来,但我在 Velocity 中找不到这么简单的方法。我可以在浏览器中显示带有“HTML 示例课程名称”的 HTML,并在 Velocity 执行时显示每个对象的真实课程名称(就像在 Thymeleaf 中一样)?

PD:如果有任何文档参考,我将不胜感激。

弹簧控制器

@RequestMapping("/product/{id}")
    public String getProductById(@PathVariable Integer id, Model model){
        model.addAttribute("product", productService.getProduct(id));
        return "product";
    }

PRODUCT.HTML

<div class="row">
    <div class="col-md-12">
        <h1 th:text="${product.courseName}">Course Name</h1>                    
    </div>
</div>

谢谢

【问题讨论】:

    标签: thymeleaf velocity


    【解决方案1】:

    是的,但不完全是你正在做的事情。如果您查看参考文档的properties 部分,它会解释如何操作:

    属性

    VTL 引用的第二种风格是属性和属性 有独特的格式。速记符号由一个 前导 $ 字符后跟一个 VTL 标识符,后跟一个点 字符 (".") 和另一个 VTL 标识符。这些是 VTL 中的有效属性引用:

    $customer.Address
    $purchase.Total
    

    另外解释了,如果你使用它,它会像thymeleaf一样调用属性的getter。

    $customer.Address。它可以有两种含义。这可能意味着,看 哈希表标识为客户并返回与关联的值 关键地址。但是 $customer.Address 也可以指一个 方法(引用方法的引用将在下一个讨论 部分);

    $customer.Address 可以是缩写的写法 $customer.getAddress()

    ........

    已编辑

    所以在简历中,不要使用 th:text 这样的百里香标签。

    <h1>$product.courseName</h1>     
    

    【讨论】:

    • 对不起,我没有把问题解释清楚(所以我又写了一遍)。感谢您的帮助保罗!!! :-D
    • 使用&lt;h1&gt;&lt;/h1&gt; 是正确的,但不需要删除{},因为它对应于Velocity 的formal reference notation
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多