2009-10-28 62 views
1

我有一個問題,我希望有人可以幫助我在這裏。那麼,我正在用Struts 1.3.10開發一個應用程序,並且我有一個包含屬性的對象的struts表單。該屬性被聲明爲原始類型int,當應用程序向用戶顯示零(0)而不是什麼時,我從數據庫中檢索該數據並將其結果爲NULL時出現問題。有沒有人遇到過這個問題?你們如何避免這種行爲?Struts形式和變量聲明

它來到我的腦海裏唯一的辦法就是把這一intString對象,但暗示一些鑄造和/或其它操作時,你必須插入/檢索/更新數據從數據庫/。

對此有何幫助? 由於提前, 卡洛斯

+0

你需要發佈一些代碼。這應該在您的DAO而不是前面的層中修復。從數據庫中檢索時,檢查值是否存在。如果值不存在,那麼將0放在您的對象屬性中,這將顯示給用戶。 – Omnipresent 2009-10-28 18:26:01

+0

感謝您的回答。如果我在視圖中過濾並僅向用戶顯示大於0的數字,那麼可以在我當前的項目中使用。但是如果某些數據實際上是0呢? – 2009-10-30 07:58:57

回答

2

總之,這裏有你想要什麼: 如果有人輸入一個值,在文本框中顯示的值,如果有人沒有輸入值(該值爲null)顯示器空白。

不幸的是,不是我能找到自然地做到這一點的方式,所以你必須做到以下幾點:
1.使用形式爲那些性能上Integer,從數據庫中設置這些值,以便它們是空值或實際值。
2.在你的JSP,你將不得不手工工藝輸入的標籤,像這樣:

<c:set var="propertyValue">
<c:if test="${! empty FORM_NAME.PROPERTY_NAME}>
<c:out value="${FORM_NAME.PROPERTY_NAME}"/>
</c:if>
</c:set>
<input type="text" name="PROPERTY_NAME" value='<c:out value="${propertyValue}/>'/>

哪裏FORM_NAME是窗體的名字和PROPERTY_NAME是你Integer屬性的名稱。這不是優雅的,但它應該工作(我還沒有測試它)

+0

嗨史蒂文,謝謝你的回答。是的,你說的是我想要的。你談論的方法是完美的,但我最終設置了屬性作爲一個字符串,當我要操作數據庫(讀或寫)時,我將數據轉換爲我需要的(要創建字符串模型對象和Integer來設置和檢索數據庫中的數據)。 – 2009-11-04 10:05:17