2010-11-16 96 views
1

我有一個簡單的表格,每個<h:inputText>旁邊都有一個<h:message>來顯示驗證消息。JSF消息:un-localize?

我想要一個特定的字段是1到999999之間的數字,並且這是驗證消息,如果該數字不在正確的範圍內顯示。使用此:

<f:validateLongRange minimum="1" maximum="999999"/> 

我得到的消息:

productId: Validation Error: Specified attribute is not between 
the expected values of 1 and 999,999. 

我顯示沒有逗號分隔符的號碼的請求,但這種附帶了一個我在我的faces.config的語言環境。

起初,我通過創建custon驗證器的基本解決方案,它將檢查提交的值是否是字符串,是否在要求的範圍內,但在我看來有點矯枉過正。

有沒有另一種方法呢?

回答

2

如果使用JSF 1.2,你可以設置你的輸入組件替代驗證消息:

<h:inputText value=".." validatorMessage="Please enter a valid number"> 
    <f:validateLongRange minimum="1" maximum="999999"/> 
</h:inputText> 
+0

感謝您的回答(+1)。我必須爲所有具有數字範圍的輸入文本執行此操作,所以我對此並不熱衷。無論如何,如果沒有更好的答案,我會將它標記爲已接受的答案。 – 2010-11-17 08:33:15

+1

在這種情況下,您也可以覆蓋包中的默認消息密鑰「javax.faces.validator.NOT_IN_RANGE」! – chkal 2010-11-17 19:16:08

1

在哪種語言,你要出現在您的驗證消息?

最近一個同事不得不解決什麼(我認爲)是你的問題:我們是意大利人,意大利語包和意大利語區域加載的,但是所有的JSF驗證消息(不是自定義的,區域設置正確設置和檢索的)是英文的。 在查看JSF jar文件後,他發現從中檢索到此驗證消息的屬性文件簡直就是......在意大利語中不可用! 他不得不尋找一個已經(壞)已翻譯的屬性文件,並將其包含在JSF jar文件中。

希望它也解決了你的問題。

+0

謝謝(+1),我的問題是一個不同的問題。 – 2010-11-18 00:02:25

+0

對不起,我沒正確理解。 chkal的解決方案工作? – emas 2010-11-18 10:59:59