我有一個JSF驗證器,用於檢查容器編號字符串是否符合ISO-6346規範。JSF:通過字段從驗證器訪問Bean
它工作正常,但是我需要添加一些條件處理基於容器號來自的Bean中的其他值。這個Bean可以有幾種不同的類型。
有什麼方法可以在驗證器中訪問Bean並對其執行操作?理想情況下,我很樂意保持它作爲驗證器,但是如果沒有解決方案,我必須在堅持之前在Bean中實現邏輯。
我想沿着線的東西:
public class ContainerNumberValidator implements javax.faces.validator.Validator {
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
Object bean = UIComponent.getMyBeanSomehowThroughAMagicMethod();
if(bean instanceof BeanA) {
//do this
} else if(bean instanceof BeanB) {
//do that
}
}
UPDATE:在許多方面,這是一個類似的問題到多個領域同時進行驗證。由BalusC提供的This code是有幫助的。
非常感謝。
D.
另一種方法是直接從組件獲取屬性映射。結合它與你的東西的接口,它可以這樣簡單... ISOBean bean =(ISOBean)component.getAttribute(「containerBean」); bean.doStuff(); – Drew 2009-07-29 13:15:10