如果在JSTL中声明

时间:2014-10-28 13:04:02

标签: java oracle jsp jstl

我想在JSTL中创建一个if语句。这是我想要的:

<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子句中使用sex

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

3 个答案:

答案 0 :(得分: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:query语句中直接使用param.sex,在这种情况下你可以使用“三元运算符”而不是if语句。

谷歌有关“JSTL三元运营商”的更多信息或在此处查看(向下滚动至三元运营):http://davidensinger.com/2014/07/fun-with-jstl-in-jsps/


更新

要查看三元运算符的运行情况并确保param.sex值是您期望的值,您只需输入:

${param.sex == 'male' ? 0 : 1}

在空白行上,它应该在屏幕上打印0或1。

答案 1 :(得分:1)

使用增强的if条件会更容易

答案 2 :(得分:0)

 从成员中选择firstname,lastname,其中sex =&lt;%=在此EL%中输入为性别假定的变量名称&gt;