1
有沒有辦法從ConstraintValidator.isValid
方法訪問葉或根bean?如果沒有,是否有任何解決方法?如何從ConstraintValidator.isValid方法訪問葉或根bean?
謝謝。
馬科斯
有沒有辦法從ConstraintValidator.isValid
方法訪問葉或根bean?如果沒有,是否有任何解決方法?如何從ConstraintValidator.isValid方法訪問葉或根bean?
謝謝。
馬科斯
沒有,沒有,原因在於調用Validator#validateValue()
當沒有bean的實例。
關於解決方法,您能描述一下您嘗試解決的用例嗎? – Gunnar
是的,我可以理解,但我不知道爲什麼僅僅因爲validateValue方法而犧牲了這樣一個重要的信息。大部分時間我們只調用validate和validateProperty方法。如果bean信息不可用,我們會知道被調用的方法是validateValue方法。我不是,如果只是我,但這個規範似乎有點不完整。有時候,我們需要更多的信息在isValid方法中,這個規範沒有提供。 – Marcos
如果我有這些信息,我不需要使用threadlocal傳遞上下文信息。這不夠優雅,容易出錯。順便說一下,規範應該解決如果需要將某些上下文信息傳遞給驗證方法的需要。我認爲很多人要求這樣做,因爲ConstraintValidator.isValid方法中提供的信息有時不足以進行驗證。 – Marcos