我的要求看起来很简单,但我觉得我在代码中做错了.
我只需要在没有从UI的InputText字段传递任何内容时在Oracle数据库中插入"null".
PaymantSpecFormPage.xhtml
<h:inputText id="startWeek" value="#{flowScope.paymentSpecVO.paymStartWk}" styleClass="inputTypeForm" maxlength="4"/>
Run Code Online (Sandbox Code Playgroud)
PaymentSpecVO.java
public class PaymentSpecVO extends BaseVO<PaymentSpec> {
private Integer paymStartWk;
public Integer getPaymStartWk() {
return paymStartWk;
}
public void setPaymStartWk(Integer paymStartWk) {
this.paymStartWk = paymStartWk;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的数据库表中
COLUMN_NAME DATA_TYPE NULLABLE DEFAULT_VALUE
------------ --------- -------- -------------
PAYM_START_WK NUMBER(4,0) Yes null
Run Code Online (Sandbox Code Playgroud)
当我在inputText中没有输入任何内容时,那么在表格中输入0而不是null,这在我的业务逻辑中有不同的含义,请帮我做必要的代码更改.
Bal*_*usC 17
当我在inputText中输入任何内容时,则输入0表而不是null
这个问题可以被识别为Tomcat的EL解析器没有考虑到你正在使用Integer而不是int.您需要将以下VM参数添加到Tomcat启动选项:
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
Run Code Online (Sandbox Code Playgroud)
它解决了我的一半问题,现在它存储空值,但在检索时它再次显示0
这个问题可以被识别为使用ResultSet#getInt()而不是使用的JDBC ResultSet#getObject().然而,这与第一个问题基本上是不同的问题.您没有说明如何设置数据库访问层,因此很难指出具体的解决方案.
| 归档时间: |
|
| 查看次数: |
11311 次 |
| 最近记录: |