我有一个selectbox
,想要将值和文本加载到模板中,类似于HTML下拉框。我在后端使用带有Java的ZK框架。
<selectbox id="buListbox" model="${$composer.buModel}" >
<template name="model">
<label value="${each}" />
</template>
</selectbox>
答案 0 :(得分:0)
使用ZK时,您不需要使用该值来识别所选对象,就像在HTML中一样。
使用MVC模式时,通过model
属性绑定模型,所选项目也存储在该模型中,可以通过model.getSelection()
在java中检索。
此外,模型不限于String
的列表,但它可以保存您想要的任何对象类型。在template
部分中,您可以显示该对象的任何属性。然后属性&#39; toString()
方法用于获取显示的值。这也适用于${each}
本身。
示例:
假设您的模型是ListModelList
类型ValueType
:
public class ValueType {
private String value;
private String text;
public ValueType(String value, String text) {
this.value=value;
this.text=text;
}
public String getText() {
return this.text;
}
public String getValue() {
return this.value;
}
}
private ListModelList<ValueType> typesModel;
public ListModelList<ValueType> getTypesModel() {
return typesModel;
}
您可以使用selectbox
的模型/模板来显示它的文字属性:
<selectbox id="typesSelectbox" model="${$composer.typesModel}">
<template name="model">
${each.text}
</template>
</selectbox>
在java中,您可以通过typeModel.getSelection()
获取所选项目。
Here你可以找到一个有效的ZKFiddle示例。