fruitmountvalidator.java

来自「基于Tapestry4」· Java 代码 · 共 55 行

JAVA
55
字号
package com.tapestry4;

import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
import org.apache.tapestry.form.validator.Validator;
import org.apache.tapestry.valid.ValidatorException;

public class FruitMountValidator implements Validator {
	
	private Integer fruitId;

	public void validate(IFormComponent field, ValidationMessages message,
			Object object) throws ValidatorException {
		Fruit fruit = Products.findFruitById(this.getFruitId());
		Number n = (Number)object;
		if(n.intValue()>fruit.getMount()){
			throw new ValidatorException("购买数量大于"+ fruit.getName() +"的存货(" + fruit.getMount() + "),请重新输入!", null);
		}
	}

	/**
	 * 是否把null作为效验的值。如果返回true,则不输入任何值也会触发validate方法,只是第三个参数为Object的值null。
	 * 如果返回为false,则输入null不触发validate方法。
	 */
	public boolean getAcceptsNull() {
		return false;
	}

	/**
	 * tapestry并不会使用这个方法,该方法只是为了方便自己标识。
	 */
	public boolean isRequired() {
		return true;
	}

	
	/**
	 * 这个方法可以用来放置JavaScript。
	 */
	public void renderContribution(IMarkupWriter arg0, IRequestCycle arg1,
			FormComponentContributorContext arg2, IFormComponent arg3) {
	}

	public Integer getFruitId() {
		return fruitId;
	}

	public void setFruitId(Integer fruitId) {
		this.fruitId = fruitId;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?