如何在使用mvvm模型时绑定zk中的部分字符串

时间:2013-12-14 12:43:52

标签: java mvvm label zk zul

所以,让我们说我们想做一些像这样的事情:

<label zclass="class1 class2 @load(vm.class)" />

如何在ZK中执行此操作?

以上代码将zclass呈现为class1 class2 @load(vm.class)。但我们想要执行@load

2 个答案:

答案 0 :(得分:2)

您可以使用cat - 来自core taglib的方法来连接字符串。像这样:

<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
...
<label zclass="@load(c:cat('class1 class2 ', vm.class))" />

有关core方法的详细信息,请参阅here

答案 1 :(得分:0)

要做到这一点,我选择了一个AbstractViewModel,其中包含所有这些&#34;技术&#34;我希望在我的祖尔使用的方法。

然后我让我的每个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);
    }
}

然后在我的zul

tooltiptext="${vm.format(labels.my.label, param1)}"

此致