所以,让我们说我们想做一些这样的事情:
<label zclass="class1 class2 @load(vm.class)" />
如何在 ZK 中做到这一点?
上面的代码呈现zclass
为class1 class2 @load(vm.class)
. 但是我们要执行@load
?
您可以使用taglib 中cat
的 -like 方法core
来连接字符串。像这样的东西:
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
...
<label zclass="@load(c:cat('class1 class2 ', vm.class))" />
有关core
方法的更多详细信息,请参见此处
为此,我使用了一个 AbstractViewModel,其中包含我想在 Zul 中使用的所有“技术”方法。
然后我让我的每一个 Viewmodel 都扩展了这个 abstractViewModel
public class AbstractTechnicalViewModel {
/** @see java.text.MessageFormat#format(String, Object...) */
public String format(final String pPattern, final Object... pParams) {
return MessageFormat.format(pPattern, pParams);
}
/** @see org.apache.commons.lang.StringUtils#concatenate(Object[]) */
public String concat(final Object... pParams) {
return StringUtils.join(pParams);
}
}
然后在我的祖尔
tooltiptext="${vm.format(labels.my.label, param1)}"
问候