我想在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>
答案 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;