我無法獲得Java Bean驗證(JSR-303)的工作。它不會給出任何錯誤並處理操作方法。我將一個字符放在「name」inputText中,它接受並執行process()方法(大小注釋不適用)。JSF Bean驗證約束沒有任何效果
當我把一個字符我希望My.Process()方法不被執行,我不是嗎? 是否有任何配置讓我忽略驗證工作?
在我的項目的WEB-INF/lib目錄我有驗證-API 1.0.0.GA.jar,休眠 - 驗證 - 4.2.0.Final.jar。
應用服務器:的Tomcat 7.0.25(Tomcat的庫文件夾中我有MyFaces的-API-2.1.5.jar和MyFaces的-IMPL-2.1.5.jar)。
IDE:Eclipse Helios SR2
我從控制檯收到消息「INFO:MyFaces Bean驗證支持禁用」,但我有指定的罐子。
豆
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.validation.constraints.Size;
@ManagedBean(name="my")
@RequestScoped
public class MyBean implements Serializable {
@Size(min=3, message="ERROR")
private String name;
public String process() {...}
...getters, setters, etc...
}
JSF形式
<h:form>
<h:messages />
<h:inputText value="#{my.name}" />
<h:commandButton value="Save" action="#{my.process}" />
</h:form>
我也試過:
@NotEmpty,@NotBlank,
@ org.hibernate.validator.constraints.Length( min = 3,message =「ERROR」)
但它們不起作用。
您的代碼適用於我的環境(GF 3.1.1,Mojarra 2.1.3)。除Glassfish(Java EE6 bean-validation.jar)之外,我沒有其他驗證API。 – 2012-03-12 15:20:22
嗯,在寫這裏之前,我實際上已經簡化了我的代碼,但這個精確的簡化版本對我而言也不適用於我上面指定的環境。我真的厭倦了試圖找到問題。它沒有任何意義?我讀了幾十個關於jsf bean驗證的網頁,並根據它們全部應該工作... – Seregwethrin 2012-03-12 15:35:43
我在控制檯下面得到消息,我試圖找出它爲什麼說這個。我有上面指定的罐子。 「信息:MyFaces Bean驗證支持禁用」 – Seregwethrin 2012-03-12 16:14:17