根据传入请求的数据设置下拉菜单的默认值

时间:2012-08-22 19:47:05

标签: java jsp jstl

我尝试根据传入页面的信息设置下拉菜单的默认值。到目前为止,我有这个:

<td>
    <select id="typeDropdown" name="typeDropdown">
        <option value="val1" selected="selected">Value 1</option>
        <option value="val2">Value 2</option>
    </select>
</td>

这将始终选择第一个值。

但是,我可以根据提供给网页的信息设置默认值吗?

<c:if test="${not empty data}">
    <c:set var="val" value="${data}" />
</c:if>
<td>
    <select id="typeDropdown" name="typeDropdown">
        <option value="val1" <c:if test="val eq 1">selected="selected</c:if> >Value 1</option>
        <option value="val2" <c:if test="val eq 2">selected="selected</c:if> >Value 2</option>
    </select>
</td>

其中data作为请求的一部分传递到页面中。我理解语法可能是错误的,但我对这个想法是否合理更感兴趣。

编辑1:

所以没有用。我的努力收到以下例外:

org.apache.jasper.JasperException: An exception occurred processing JSP page /newInterface.jsp at line 127

124: <td>Field 1:</td>
125:    <td><select name="field1">
126:        <c:set var="tet" value="val1"/>
127:        <option value="val1" <c:if test="${old.val eq tet}">selected="selected"</c:if>>val1</option>
128:        <option value="val2">val2</option>
129:    </select>
130: </td>


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
对于所有意图和目的,

old.val与&#34; val&#34;相同。从我最初的想法变化。

1 个答案:

答案 0 :(得分:1)

1:
...这个想法没问题,首先得到数据值输出,然后继续选择,解析错误可能很神秘,所以为什么不编辑问题并添加错误

2: 因此,请确保您也可以先输出,这可能就是“if”爆炸的原因