2016-10-27 10 views
0

У меня есть модель под названием cuntry.java с переменной lang. Я хочу проверить опцию переключателя в JSP на основе lang. Это может быть «EN» или «FR». когда я написал ниже код, бросая ошибку на странице JSP.Проверенная кнопка радионаблюдения на основе переменной модели + формы пружины + JSP

Код:

<form:radiobutton path="lang" id="language" value="FR" name="radios" <c:if ${cuntry.lang == 'FR' ? 'checked="checked"' : '' } /> ></form:radiobutton> 

Ошибка: Unterminated &lt;form:radiobutton tag

ответ

0

В теге формы есть несколько ошибок. При использовании тегов Spring вы не можете указывать атрибуты id и name. Они будут сгенерированы автоматически с переменной path. Тег <c:if ... /> внутри другой тег <form:radiobutton ... /> не допускается. Также удалите конечный тег. Это правильный путь

<form:radiobutton path="lang" value="FR" checked="${cuntry.lang == 'FR' ? 'checked' : '' }" /> 

Если значение cuntry.lang является FR, весна тег приведет следующий HTML (после компиляции)

<input id="lang" name="lang" checked="checked" type="radio" value="FR" /> 

иначе

<input id="lang" name="lang" type="radio" value="FR" /> 

Если вы абсолютно нужны атрибуты id = language и name = radios, вы не можете использовать тег Spring.

Вы найдете хороший пример here.

0

<c:if> тег работает на бирках, а не атрибуты. В результате ваш синтаксис html становится недействительным.

Я не очень долго работал с jsp. это должно более или менее работы:

<form:radiobutton checked="${cuntry.lang == 'FR' ? 'checked':''}" path="lang" id="language" value="FR" name="radios"> 
</form:radiobutton> 

Если вы настаиваете на использовании <c:if> тег для этого, вы можете сделать это:

<c:if test="${cuntry.lang == 'FR'}"> 
    <form:radiobutton checked="checked" path="lang" id="language" value="FR" name="radios"> 
    </form:radiobutton> 
</c:if> 
<c:if test="${cuntry.lang != 'FR'}"> 
    <form:radiobutton path="lang" id="language" value="FR" name="radios"> 
    </form:radiobutton> 
</c:if> 

Вы также можете использовать <c:choose>,<c:when>,<c:otherwise> теги, чтобы решить эту проблему.

Очевидно, что первое решение выглядит лучше.