2013-03-29 2 views
3

У меня есть страница JSP, где я сохраняю форму и значение выбранного переключателя в базе данных. Теперь мне нужно обновить эту страницу, все отображается, но переключатель не выбран. Я не знаю, как показать ранее выбранную кнопку на моем jsp. Я использую Struts2, Java.Как проверить переключатель в соответствии со значением, полученным из базы данных?

Jsp Код:

<div id="patientCondition"> 
      <input type="radio" id="new" value="n" name="pSB.radioInnerSubjective" /><label for="new">New</label> 
      <input type="radio" id="noChange" value="nC" name="pSB.radioInnerSubjective" /><label for="noChange">No Change</label> 
      <input type="radio" id="progressing" value="p" name="pSB.radioInnerSubjective" /><label for="progressing">Progressing</label> 
      <input type="radio" id="notProgressing" value="nP" name="pSB.radioInnerSubjective" /><label for="notProgressing">Not Progressing</label> 
    </div> 

Предположим, что я получаю значение кнопки радио как «» нКл из базы данных, теперь как я автоматически выбрать второй переключатель.

Я пробовал:

<input type="radio" id="new" value="n" <s:if test="${patientSoapBean.radioInnerSubjective == 'n'}">CHECKED</s:if> name="patientSoapBean.radioInnerSubjective"/><label for="new">New</label> 

Но я получаю сообщение об ошибке:

Mar 28, 2013 6:07:54 PM org.apache.catalina.core.ApplicationDispatcher invoke 
SEVERE: Servlet.service() for servlet jsp threw exception 
org.apache.jasper.JasperException: /WEB-INF/views/patient_soap.jsp (line: 703, column: 44) According to TLD or attribute directive in tag file, attribute test does not accept any expressions 
+0

Думаю, мне нужно добавить к этому условия, но я не знаю синтаксиса. – anshulankush

+0

Код не отображается достаточно для полного ответа. Когда вы выполняете различные возможные ответы, вам нужно проверить, установлено ли сохраненное значение из базы данных в значение текущего ответа. Когда это так, вам нужно добавить 'checked = 'checked'' к тегу ввода переключателя. Есть много способов сделать это. – Marvo

+0

Можете ли вы указать мне, чтобы исправить синтаксис. так как мне становится трудно понять это. Я проверил, когда я возвращаю значения из базы данных, что отражает pSB.radioInnerSubjective = 'nC', но второй вариант (который для 'nC' не получает проверку). Пожалуйста, помогите мне с этим. – anshulankush

ответ

2

Вы не можете использовать ${...} внутри тегов Struts2 и вы должны поменять ' и " в test атрибута правильно сравнить с одним символьная строка.

<input type="radio" id="new" value="n" <s:if test='patientSoapBean.radioInnerSubjective == "n"'>checked</s:if> name="patientSoapBean.radioInnerSubjective"/> 
<label for="new">New</label> 

И, конечно, нужно геттеры/сеттеры для patientSoapBean и radioInnerSubjective.

BTW Struts2 имеет ярлык <s:radio>, который будет проверять выбранный переключатель.

+0

Спасибо, он работал :) – anshulankush

Смежные вопросы