如何根据从数据库中检索的值检查单选按钮?

时间:2013-03-29 00:12:50

标签: jsp struts2 radio-button el struts-tags

我有一个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>

假设我从数据库中获得单选按钮的值为'nC',现在如何自动选择第二个单选按钮。

我试过了:

<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

1 个答案:

答案 0 :(得分:3)

您无法在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>

当然,您需要patientSoapBeanradioInnerSubjective的getter / setter。

BTW Struts2有<s:radio>标签,用于检查所选的单选按钮。