src/org/tiefaces/components/websheet/service/ValidationHandler.java
private boolean doValidation(final Object value, final CellFormAttributes attr, final int rowIndex,
			final int colIndex, final Sheet sheet) {
		boolean pass;

		String attrValue = attr.getValue();
		attrValue = attrValue.replace("$value", value.toString() + "").replace("$rowIndex", rowIndex + "")
				.replace("$colIndex", colIndex + "").replace("$sheetName", sheet.getSheetName());
		attrValue = ConfigurationUtility.replaceExpressionWithCellValue(attrValue, rowIndex, sheet);
		if (attrValue.contains(TieConstants.EL_START)) {
			Object returnObj = FacesUtility.evaluateExpression(attrValue, Object.class);
			attrValue = returnObj.toString();
			pass = Boolean.parseBoolean(attrValue);
		} else {
			pass = parent.getCellHelper().evalBoolExpression(attrValue);
		}
		return pass;

	}
private boolean doValidation(final Object value, final CellFormAttributes attr, final int rowIndex,
			final int colIndex, final Sheet sheet) {
		boolean pass;

		String attrValue = attr.getValue();
		attrValue = attrValue.replace("$value", value.toString() + "").replace("$rowIndex", rowIndex + "")
				.replace("$colIndex", colIndex + "").replace("$sheetName", sheet.getSheetName());
		attrValue = ConfigurationUtility.replaceExpressionWithCellValue(attrValue, rowIndex, sheet);
		if (attrValue.contains(TieConstants.EL_START)) {
			Object returnObj = FacesUtility.evaluateExpression(attrValue, Object.class);
			attrValue = returnObj.toString();
			pass = Boolean.parseBoolean(attrValue);
		} else {
			pass = parent.getCellHelper().evalBoolExpression(attrValue);
		}
		return pass;

	}
Do validation.

@param value            the value
@param attr            the attr
@param rowIndex            the row index
@param colIndex the col index
@param sheet            the sheet
@return true, if successful