0
有沒有什麼辦法可以在不使用TomEE的情況下在Tomcat中使用bean驗證?如何在Tomcat中使用bean驗證?
任何建議是值得歡迎的。由於
(更新)
我已經包含下面我的pom.xml。
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.0.2.GA</version>
</dependency>
但是,以下JSF頁面不會在Tomcat中顯示驗證錯誤消息。
<h:form id="validateID">
<h:outputLabel for="id" value="ID : " title="id" />
<h:inputText id="myid" value="#{validationDemoManagedBean.myid}"
title="id" tabindex="8" size="20">
</h:inputText>
<h:message for="myid" style="color:red" />
<h:commandButton value="Validate" type="submit" />
</h:form>
我們validationDemoManagedBean支持bean具有以下
@ManagedBean
@SessionScoped
public class ValidationDemoManagedBean implements Serializable {
@Pattern(regexp = "\\d{7}\\(\\d{1}\\)", message = "Must in pattern 9999999(9)")
private String myid = "";
. . .
}
我們沒有指定faces-config.xml中的任何默認驗證。
當在TomEE中運行此應用程序時,應該能夠顯示驗證錯誤消息,並且用戶輸入任何無效的ID文本並單擊驗證按鈕。但是,這在tomcat中不起作用。我在部署到Tomcat時有什麼錯過?
感謝Gunnar, 我的問題是我已將hibernate-validator包含在pom.xml中但是,JSF仍然無法驗證在用戶點擊提交按鈕後支持bean。 (注:我的face.config.xml中沒有任何默認驗證器)tomEE中的相同應用程序工作。我會更新我的問題以反映情況。 –
在Java EE容器中,您只能獲得JSF和BV開箱即用的集成(JSF規範在2.5.7中說:「如果包含JSF運行時的環境,JSF實現必須支持JSR 303 Bean驗證需要JSR 303 Bean Validation。目前唯一的這樣的環境是當JSF包含在Java EE運行時「)。因此,在非SE環境(例如純Tomcat)中,您必須自己設置所需的集成點。你可以看看TomEE的代碼庫來了解他們是如何做到的,但是我又說你可以使用TomEE自己開始。 – Gunnar