如果除了sql:query以外的其他位置沒有使用$ {sex}變量,則不需要執行零位/一位。你的問題可以摺疊來源:
<c:set var="sex" value="${param.sex}"/>
<c:if test="$(param.sex=='male')" >
//set the sex to zero
</c:if>
<c:if test="$(param.sex=='female')" >
//set the sex to one
</c:if>
...
<sql:query dataSource="${dbcon}" var="result">
select firstname,lastname from members where sex = ?
<sql:param value="${sex}">
</sql:param>
下降到只有這個:
<sql:query dataSource="${dbcon}" var="result">
select firstname,lastname from members where sex = ?
<sql:param value="${param.sex == 'male' ? 0 : 1}">
</sql:param>
問題的關鍵是,你可以直接在SQL中使用param.sex:查詢語句,你可以使用「三元運算符「而不是在這種情況下使用if語句。
谷歌更多的「JSTL三元運算符」或者看看這裏(向下滾動到三元操作):http://davidensinger.com/2014/07/fun-with-jstl-in-jsps/
UPDATE
要查看三元運營商的行動,並確保該param.sex值,是你希望你可以輸入:
${param.sex == 'male' ? 0 : 1}
在空白行上,它應該打印0或者1到您的SCR EEN。
去什麼是停止?忘了問? – SMA 2014-10-28 13:06:22
你的問題是什麼? – Jens 2014-10-28 13:06:58
@almasshaikh我不知道正確的語法 – 2014-10-28 13:11:31