亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使數字輸入區域最初為空而不是0或0.00?

如何使數字輸入區域最初為空而不是0或0.00?

翻閱古今 2019-11-04 10:08:59
我有一個應該輸入數字的地方。我希望它顯示為空。但是,當我運行程序時,默認值為0或0.00。如何將其清空?
查看完整描述

3 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

如果將值綁定到基元而不是包裝器表示形式,則會發生這種情況。圖元int始終默認為0,而圖元double始終默認為0.0。您想改用Integer或Double(或BigDecimal)。


例如:


public class Bean {


    private Integer number;


    // ...

}

然后,在處理表單提交時還要考慮兩件事。首先,您需要指示JSF將空字符串提交的值解釋為null,否則EL仍會將空字符串強制為0或0.0。這可以通過以下上下文參數完成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 / JBoss的或使用Apache EL解析器蓋下的任何服務器,那么你需要指示它不強迫null到0或0.0在案件Number類型由以下VM參數(它unintuitively處理Number類型,如果它們是原始元素):


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


查看完整回答
反對 回復 2019-11-04
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

我不同意先前給出的答案,但我認為您可能正在尋找


<h:inputText id="number" binding="#{controller.inputBox}" value="#{controller.number}" >

     <f:event type="preRenderComponent" listener="#{controller.preRenderInput}" />

</h:inputText>

在控制器內部


private double number; // getters and setters

private UIInput inputBox; // getters and setters

public void preRenderInput() {

        // if it is the first request

        if(!FacesContext.getCurrentInstance().isPostback()) {

            inputBox.setValue("");

        }

}

JSF 2.0以上


查看完整回答
反對 回復 2019-11-04
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

在您的XHTML代碼中,假設您的輸入字段為:


<h:inputText id="newname" value="#{youAction.newName}"

        style="width:130px" styleClass="form">

</h:inputText>

在您的Managed Bean Action Class中,將此字段映射為:


@ManagedBean(name="yourAction")

public class YourAction {


   private String newName;

   ...


   // Add Getter & Setter Methods

   ... 

}

通過這樣做,你不會得到0或0.00在你輸入字段的默認值。


查看完整回答
反對 回復 2019-11-04
  • 3 回答
  • 0 關注
  • 667 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號