jsp中radio的性別資訊的資料回顯問題
阿新 • • 發佈:2019-02-15
昨晚在做畢業設計的時候,遇到了一個久久不能解決的問題。是這樣的,在修改人員資訊的時候,先要回顯該人員的原始資訊。其他資訊,包括姓名郵箱部門資訊都沒有問題,在回顯性別資訊時(jsp-input的radio型別),總是不能正確顯示。嘗試了各種辦法都不行。我使用的是struts2和hibernate做的一個管理系統。引入的是jstl的標籤庫。
第一種方式:
<c:if test="${info.sex=='1'}">
<input type="radio" name="emp.sex" checked="checked" value="1"/>男
<input type="radio" name="emp.sex" value="0"/>女
</c:if>
<c:if test="${info.sex=='0'}">
<input type="radio" name="emp.sex" value="1"/>男
<input type="radio" name="emp.sex" checked="checked" value="0"/>女
</c:if>
第二種方式:
<input type="radio" name="emp.sex" value="1" checked="${info.sex=='1'?"'checked'":''}"/>男
<input type="radio" name="emp.sex" value="1" checked="${info.sex==0?"'checked'":''}"/>女
第三種方式:
<input type="radio" name="emp.sex" value="1" <c:if test="${info.sex=='1'}" 'checked'/>/>男
<input type="radio" name="emp.sex" value="1" <c:if test="${info.sex==0}" 'checked'/>/>女
後在把test中的==改為eq也不行,是在沒有辦法了,請教各位高手!希望能夠給我點建議,謝謝!
-------------------------------------------------------
現在已經解決了這個問題。原來不是寫法的問題,而是自己沒注意sex欄位在資料庫中的儲存型別的變化。資料庫中sex是用char(2)存的,而我用1表示男,0表示女,只佔了一個字元。而預設在oracle還是以1/0加一個空格符的形式存的。所以在原先的寫法中<c:if test="${info.sex=='1'}">,得到的是一個false,所以是不會執行以下的程式碼的。
所以以後用char型別還是要注意的!用varchar2就不容易出現這種情況。
第一種方式:
<c:if test="${info.sex=='1'}">
<input type="radio" name="emp.sex" checked="checked" value="1"/>男
<input type="radio" name="emp.sex" value="0"/>女
</c:if>
<c:if test="${info.sex=='0'}">
<input type="radio" name="emp.sex" value="1"/>男
<input type="radio" name="emp.sex"
</c:if>
第二種方式:
<input type="radio" name="emp.sex" value="1" checked="${info.sex=='1'?"'checked'":''}"/>男
<input type="radio" name="emp.sex" value="1" checked="${info.sex==0?"'checked'":''}"/>女
第三種方式:
<input type="radio" name="emp.sex" value="1" <c:if test="${info.sex=='1'}" 'checked'/>/>男
<input type="radio" name="emp.sex" value="1" <c:if test="${info.sex==0}" 'checked'/>/>女
後在把test中的==改為eq也不行,是在沒有辦法了,請教各位高手!希望能夠給我點建議,謝謝!
-------------------------------------------------------
現在已經解決了這個問題。原來不是寫法的問題,而是自己沒注意sex欄位在資料庫中的儲存型別的變化。資料庫中sex是用char(2)存的,而我用1表示男,0表示女,只佔了一個字元。而預設在oracle還是以1/0加一個空格符的形式存的。所以在原先的寫法中<c:if
所以以後用char型別還是要注意的!用varchar2就不容易出現這種情況。