使用JSF 2.0更換輸入字段:爲什麼一個JSF需要驗證錯誤,其原有的價值
用戶加載一個頁面綁定到具有現有值後臺Bean的字段中輸入字段。輸入字段已被標記爲必需。如果用戶填寫了該字段並提交了表單,則會按預期顯示所需的消息,但是在呈現頁面時該字段的值將替換爲其原始值,而不是將該字段留空。
此行爲與在字段上存在格式驗證錯誤(與所需的驗證錯誤)時發生的情況不一致,例如,如果用戶在與電子郵件格式驗證程序相關聯的頁面上輸入了一個字段,並且該用戶替換了當該頁面加載了無效電子郵件地址時填充在該字段中的現有有效電子郵件地址,並且提交表單時,將顯示驗證錯誤消息,並且電子郵件地址字段的當前值將保留(並且在加載頁面時不會用其原始值替換)。
當重新加載其原始(非空白)值時,是否有任何方法可以將字段留空爲空?
更多細節:
- 的Weblogic 10.3.2
- MyFaces的2.0.12
JSF頁面:
<h:form>
<h:messages showSummary="true"/>
<h:inputText value="#{page1Controller.firstName}"
required="true"
requiredMessage="You must enter a first name"/>
<h:commandButton value="Submit"/>
</h:form>
Managed Bean的
@ManagedBean
public class Page1Controller
{
public String getFirstName()
{
return "Default Value";
}
public void setFirstName(String value)
{
// no-op (for example purposes only)
}
}
這是不是默認的行爲。它應該已經按照你最初的預期工作了。更重要的是,我只是在Tomcat 7.0.26上嘗試了一個Mojarra 2.1.7的快速例子,它對我來說很有用。請顯示SSCCE並提及確切的JSF impl/version和appserver impl/version。 – BalusC 2012-04-06 19:58:42