2012-02-22 53 views
1

我有一个HTML下拉菜单,我希望将所选值作为参数传递给SQL查询。将HTML下拉值传递给JSTL sql:查询

这是下拉:

<select name="ifs_db_options" onchange="submit()"> 
    <c:forEach var="ifs_db1" items="${ifs_db1.rows}"> 
     <option value="${ifs_db1.rows}" selected>${ifs_db1.img_hub}</option> 
    </c:forEach> 
</select> 

这是我的查询

<c:set var="hub" value="${ifs_db1}"/> 
<sql:query var="ifs_db" dataSource="jdbc/postgresDB"> 
    select * from ifs_db where img_hub = ? 
    <sql:param value="${hub}" /> 
</sql:query> 

我想通过从下拉菜单中 “价值” 的参数

<c:set var="hub" value="value of the dropdown"/> 

使我可以使用它作为我的查询"where img_hub = ?"的参数。

回答

1

它可以作为请求参数${param}映射通常的方式与作为关键确切的名称,因为你已经给了<select>元素。

因此,考虑

<select name="ifs_db_options"> 

,你可以把它作为EL

${param.ifs_db_options} 

如下请注意,JSTL SQL标签库是discouraged正常生产的应用程序,因为它严重紧耦合的代码。

+0

它会是这样的: select * from ifs_db where img_hub =? toink 2012-02-22 15:50:18

+0

后续问题..一旦我选择了其中一个选项,它会自动工作吗? – toink 2012-02-22 15:51:52

+0

如果您通过''将其别名或将其设置为'',则无关紧要。 EL只是EL。至于后续问题,假设你已经把它放在'

'里面,那么是的。你已经添加了一个JavaScript'submit()'调用到下拉菜单的'onchange'事件处理程序。当客户端禁用JavaScript时,它将不起作用。 – BalusC 2012-02-22 15:57:15