将ViewModel变量获取到Html组件

时间:2017-07-13 14:31:15

标签: html zk

我想像这样加载一个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.

1 个答案:

答案 0 :(得分:0)

那是因为“class”是一个Java关键字(即你不能将它用作名称)。所以zk使用“sclass”代替解决这个问题。

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

为了帮助理解正在发生的事情:如果你在zul中写了类似<component property="something" />的内容,那么zk会在某个时候调用component.setProperty(something)。因此,在您的情况下,即使没有“class”作为Java关键字,也会抱怨setClass上没有li方法。

如果您将来设置属性时遇到问题,只需打开您要创建的组件的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元素创建任何窗口小部件或组件。