zk之validation
来源:互联网 发布:c语言入门书籍推荐知乎 编辑:程序博客网 时间:2024/06/05 02:41
下面介绍一下如何使用zk的validator:
步骤一:
新建一java类 ,这个类需要继承org.zkoss.bind.validator.AbstractValidator类,然后在validate实现你的校验。代码如下:
package com.wit.li.controller;
import org.zkoss.bind.ValidationContext;
import org.zkoss.bind.validator.AbstractValidator;
public class EmailValidator extends AbstractValidator {
@Override
public void validate(ValidationContext ctx) {
String email = (String) ctx.getProperty().getValue();
System.out.println(email);
addInvalidMessage(ctx, "我就是不给你过");
}
}
步骤二
新建一个ViewModel,在viewModel中使用该validator。
package com.wit.li.controller;
import java.util.ArrayList;
import java.util.List;
import org.zkoss.bind.Validator;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.NotifyChange;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Listbox;
public class ButtonViewModel {
private Validator emailValidator = new EmailValidator();
public Validator getEmailValidator(){
return emailValidator;
}
private List<String> str;
private Listbox box;
public Listbox getBox() {
return box;
}
public void setBox(Listbox box) {
this.box = box;
}
public List<String> getStr() {
return str;
}
public void setStr(List<String> str) {
this.str = str;
}
@Command
@NotifyChange("str")
public void btn1(){
System.out.println("hi 1");
str = new ArrayList<String>();
str.add("100");
str.add("101");
str.add("102");
}
@Command
public void btn2(){
str = new ArrayList<String>();
str.add("200");
str.add("201");
str.add("202");
}
}
emailValidator 就是我定义的校验器,get方法是必须的,因为在view层获取校验器的时候是通过get方法获取的。
步骤三
编写zul文件,代码如下:
<zk>
<window id="win"
apply="org.zkoss.bind.BindComposer" validationMessages="@id('vmsgs')"
viewModel="@id('vm')@init('com.wit.li.controller.ButtonViewModel')">
<textbox id="tb1" value="@bind(vm.str) @validator(vm.emailValidator)" />
<label id="m1" value="@bind(vmsgs[tb1])"/>
<button label="bt1" onClick="@command('btn1')" />
<button label="bt2" onClick="@command('btn2')"/>
<listbox forEach="${vm.str }" id="listbox">
<listitem label="${each }"></listitem>
</listbox>
</window>
</zk>
需要说明的是 validationMessages="@id('vmsgs')",这个指定了访问校验信息的id。@bind(vmsgs[tb1])是获取tb1的校验信息。
- zk之validation
- zk之旅之--------- 开始ZK: install and hello world
- zk
- zk
- zk
- ZK
- zk
- zK
- ZK
- zk之旅之--------- 认识ZK(1):zk的基础构架和基本机制
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- android Service 生命周期和使用注意项
- hive regexp_extract
- PHP实现代码复用神器:trait
- 自定义属性,所有format的相关介绍
- 程序设计原则
- zk之validation
- Oracle登录报ORA-01031: insufficient privileges的问题记录
- iOS 查看详情 富文本
- sqlite数据库
- KETTLE记录(安装、连接数据库)
- Service要点全解析
- 解决ListView与ScrollView冲突——ListViewForScrollView
- kafka 经典入门
- js Math对象属性和方法