2014-10-28 33 views
3

聲明我想打一個,如果statment在JSTL。這裏是我想要做什麼:如果JSTL

<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> 

,然後使用性的where子句中像這樣

<sql:query dataSource="${dbcon}" var="result"> 
select firstname,lastname from members where sex = ? 
<sql:param value="${sex}"></sql:param> 

+0

去什麼是停止?忘了問? – SMA 2014-10-28 13:06:22

+1

你的問題是什麼? – Jens 2014-10-28 13:06:58

+1

@almasshaikh我不知道正確的語法 – 2014-10-28 13:11:31

回答

1

使用增強,如果條件會更容易

0

選擇姓名,從成員姓氏其中性別= <(%)=在該EL%輸入假設性變量名>

1

如果除了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。

+0

它doesnot工作..任何其他建議?? – 2014-10-28 16:49:31

+0

當然,你是否收到錯誤?我將更新答案,向您展示三元操作符的工作原理。 – alfreema 2014-10-30 14:28:52