获取 ViewModel 变量到 Html 组件



我想像这样为HTML组合加载一个类<h:li />

<h:li class="@load(vm.className)" />

但我不能,也不能使用 ZK 组件。

欢迎任何建议,谢谢

编辑

这是错误:

org.zkoss.zel.ELException: The identifier [class] is not a valid Java identifier as required by section 1.19 of the EL specification (Identifier ::= Java language identifier). This check can be disabled by setting the system property org.zkoss.zel.impl.parser.SKIP_IDENTIFIER_CHECK to true.

这是因为"class"是一个Java关键字(即你不能将其用作名称(。所以zk使用"sclass"来解决这个问题。

所以,试试这个:<h:li sclass="@load(vm.className)" />

为了帮助理解正在发生的事情:如果你用 zul 写类似<component property="something" />的东西,zk 会在某个时候调用component.setProperty(something)。所以在你的情况下,即使没有"class"是Java关键字,它也会抱怨li没有setClass方法。

如果您在将来设置属性时遇到问题,只需打开您尝试创建的组件的 Java 类,并检查它是否确实具有该属性的 setter。


在 Op 反馈后进行编辑

@KiloBatata 不过,还有另一种可能性:使用 xhtml namspace而不是本机空间。我刚刚尝试过:

<h:li xmlns:h="http://www.w3.org/1999/xhtml" sclass="@load(vm.className)" />

给我

<li id="z_3" class="hello-world"></li>

使用 xhtml 命名空间而不是本机命名空间很有帮助,因为本机命名空间不会为 DOM 元素创建任何小部件或组件。

最新更新