gpt4 book ai didi

java - stringtemplate:使用预选生成 html 选择时出现问题

转载 作者:行者123 更新时间:2023-11-27 22:48:41 27 4
gpt4 key购买 nike

我正在尝试生成一个预选了一个选项的 html 选择元素。我想不出用 stringtemplate 来做到这一点的方法。

如果 user.choice 设置为“B”,那么我想打印一个带有预选选项 B 的 html 选择元素。

user.choice = "B";
StringTemplate myPage = group.getInstanceOf(....);
myPage.setAttribute("user", user);

在打印模板时应该生成:

<select>
<option value="A" >A Selected</option>
<option value="B" SELECTED >B Selected</option>
<option value="C" >C Selected</option>
<option value="D" >D Selected</option>
</select>

谁能告诉我如何编写执行此操作的模板。选择的数量(A、B...)是固定的(在编写模板时已知)。

在为网站生成 html 页面时,这是一个非常常见的要求。但是在 stringtemplate 中似乎没有类似传递值的比较操作。我是否遗漏了一些明显的东西?

我正在使用字符串模板组 (.stg) 文件,因此具有引用其他模板的模板的解决方案很好。在 java 中使用 stringtemplate 3.2.1。使用“$”分隔符而不是现在默认的“<>”来简化 html 生成。

最佳答案

StringTemplate 在您的 View 和模型之间强制实现非常严格的分离。它不支持做 conditional operations除了 boolean 值以外的任何东西。我认为引擎真的希望您在将数据传递给渲染之前完成计算。

我建议将值与实际列表项本身一起存储。假设您已经在“列表”对象(存储在您的集合中)上有一个“值”和一个“文本”属性,您也可以将一个选定的 boolean 属性添加到列表项。然后您可以按如下方式使用它:

<select>
$list:{ l |
<option value=$l.value$ $if(l.selected)$selected="selected"$endif$>$l.text$</option>
}$
</select>

关于java - stringtemplate:使用预选生成 html 选择时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5435992/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com