2012-02-22 67 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