2016-11-07 27 views
0

我有一個包含一個布爾屬性Spring MVC和JSP - 映射布爾分爲模型

class A { 
    Boolean marked; 

    [here getter and setter] 
} 

在我的JSP頁面的I類複選框連接到模型屬性:

<form:form method="POST" action="updateA" modelAttribute="myAInstance"> 
    <form:checkbox path="marked"/>Valid<br> 
    <input type="submit" value="Save"/>        
</form:form>  

... 

<span>From the DB: ${myAInstanceFromDB} </span> // this displayes true 

提交當Controller得到正確的值(myAInstance),並將其保存在DB中。但是,如果我重新加載頁面(myAInstanceFromDB),我以前選擇並保存的checkbox未被選中。我想這是因爲複選框的路徑指向modellattribute要發佈到server而不是database對象我過去的頁面。加載頁面時如何標記複選框?

+0

什麼是你在DB被保存價值? – Jobin

+0

我使用MySQL和休眠。 java類中的屬性是布爾值,DB列的類型是位(1)。使用MySQL Workbench當我執行一個select時,我看到1(真)。 –

+0

下面是一些答案: http://stackoverflow.com/questions/7845741/setting-jsp-checkbox-with-a-value-from-database http://stackoverflow.com/questions/5052003/how -to-set-checked-checkbox-based-on-database-record – KayV

回答

0

您可以使用以下

<input type="checkbox" name="myVal" id="myVal" value="checkVal" <%= ("true".equals(myAInstanceFromDB) ? "checked" : "") %>> 

另一種方法是:

<input type="checkbox" name="myVal" id="myVal" value="checkVal" ${myAInstanceFromDB == 'Head' ? 'checked' : ''}> 
+0

我必須使用標準輸入類型複選框嗎?我使用spring,所以我有<%@ taglib uri =「http://www.springframework.org/tags/form」prefix =「form」%>。它沒有檢查屬性。但它有一條路徑,這使得在模型中傳遞屬性非常舒服。 –