2011-08-26 45 views
3

有沒有辦法隱藏我的號碼屬性的默認值?我有一個int字段,在我看來<h:inputText />字段顯示爲0.除此之外,如果我將此輸入留空,我會在此處獲得一個NullPointerExceptionJSF 2 - 在<?上隱藏默認值擴展號>

我可以隱藏默認值並將空輸入視爲默認值嗎?

我對Tomcat 7

回答

10

的原始int總是默認使用mojarra 2.1.20。您想改爲使用Integer。例如:

public class Entity { 

    private Integer value; 

    // ... 
} 

至於保持其null在提交空的數據,下面的上下文PARAM添加到您的web.xml

<context-param> 
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name> 
    <param-value>true</param-value> 
</context-param> 

此外,如果你使用的是Tomcat或使用Apache的一個克隆EL解析器,添加下列服務器啓動VM參數,以及防止它處理像元Number值:

-Dorg.apache.el.parser.COERCE_TO_ZERO=false

在Eclipse中,你可以將其設置在服務器配置(雙擊在服務器視圖中的服務器條目)在變量的打開啓動配置對話標籤。在生產中,您可以將其添加到JAVA_OPTS環境變量中。

+2

Cheers BalusC - 關於JSF話題人類可以信任你:) – onigunn

+0

不客氣。 – BalusC

+1

@BalusC我正在使用JBoss和我的Intenger值仍然顯示爲0時null –