2016-11-07 5 views
0

У меня есть класс, который содержит булев атрибутSpring MVC и JSP - Mapping Boolean в модель

class A { 
    Boolean marked; 

    [here getter and setter] 
} 

На моей странице Jsp подключает флажок атрибут модели:

<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

, что значение, которое вы сохраняете в БД? – Jobin

+0

Я использую MySQL и спящий режим. Свойство в классе java имеет значение Boolean и DB-column имеет бит типа (1). Используя MySQL Workbench, я вижу 1 (для true), когда я выполняю выбор. –

+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

Нужно ли использовать этот стандартный тип ввода? Я использую весну, поэтому у меня есть <% @ taglib uri = "http://www.springframework.org/tags/form" prefix = "form"%>. Он не имеет проверенного атрибута. Но у него есть путь, который очень удобно передавать атрибуты внутри модели. –