<c:if test="${session_person.getUserIdentify()!=0}">
时间: 2024-04-28 10:18:47 浏览: 39
这段代码是JSP中的JSTL标签,其中<c:if>标签用于条件判断,test属性中的表达式会被计算,如果结果为true,则<c:if>标签中的内容会被执行,否则会被忽略。在这个例子中,test属性中的表达式是"${session_person.getUserIdentify()!=0}",它会获取名为session_person的session变量中的用户身份标识属性值,如果这个属性值不等于0,则<c:if>标签中的内容会被执行。
相关问题
<select id="selectAll" resultMap="tblTicketCardDistributionMap"> select * from TBL_TICKET_CARD_DISTRIBUTION <where> <choose> <when test="query.orderType != null and query.orderType != '' and query.orderType =='03'"> and ORDER_TYPE = #{query.orderType} and ( <if test="query.inStationId != null and query.inStationId != '' "> IN_STATION_ID = #{query.inStationId} </if> <if test="query.outStationId != null and query.outStationId != '' "> or OUT_STATION_ID = #{query.outStationId} </if> ) </when> <otherwise> <if test="query.orderType != null and query.orderType != '' "> and ORDER_TYPE = #{query.orderType} </if> <if test="query.inStationId != null and query.inStationId != '' "> and IN_STATION_ID = #{query.inStationId} </if> <if test="query.outStationId != null and query.outStationId != '' "> or OUT_STATION_ID = #{query.outStationId} </if> </otherwise> </choose> <if test="query.lineId != null and query.lineId != '' "> and LINE_ID = #{query.lineId} </if> <if test="query.stationId != null and query.stationId != '' "> and STATION_ID = #{query.stationId} </if> <if test="query.operatorId != null and query.operatorId != '' "> and OPERATOR_ID = #{query.operatorId} </if> <if test="query.curDay != null and query.curDay != '' "> and CUR_DAY = #{query.curDay} </if> <if test="query.beginTime != null and query.beginTime != '' "> and OPERATE_TIME between #{query.beginTime} and #{query.endTime} </if> </where> </select>报错语法有问题,修改正确的
根据报错信息,需要看一下具体是哪个语法有问题。不过根据代码,有一个语法问题:
在`<when>`标签中,使用了`<if>`标签,应该改为`${}`,例如:
```
<when test="query.orderType != null and query.orderType != '' and query.orderType =='03'">
and ORDER_TYPE = #{query.orderType} and (
${query.inStationId != null and query.inStationId != '' ? 'IN_STATION_ID = #{query.inStationId}' : ''}
${query.outStationId != null and query.outStationId != '' ? ' or OUT_STATION_ID = #{query.outStationId}' : ''}
)
</when>
```
这样应该就能解决语法问题了。
<c:if test="${sessionScope.user!=null}"> <li class="menu login" id="LoginInfo"><a href="#" rel="nofollow">${sessionScope.user.username}</a></li> </c:if> <c:if test="${sessionScope.user=null}"> <li class="menu login" id="LoginInfo"><a href="${pageContext.request.contextPath}/view/login.jsp" rel="nofollow">你好,请登录</a></li> </c:if>优化
可以将这段代码优化为一个`<c:choose>`标签,以减少重复代码。同时,应该将第二个`<c:if>`标签中的判断条件改为`${sessionScope.user eq null}`,因为`=`是赋值操作符,而`eq`是比较操作符。优化后的代码如下:
```html
<c:choose>
<!-- 如果 session 中存在 user,则显示用户信息 -->
<c:when test="${not empty sessionScope.user}">
<li class="menu login" id="LoginInfo">
<a href="#" rel="nofollow">${sessionScope.user.username}</a>
</li>
</c:when>
<!-- 如果 session 中不存在 user,则显示登录按钮 -->
<c:otherwise>
<li class="menu login" id="LoginInfo">
<a href="${pageContext.request.contextPath}/view/login.jsp" rel="nofollow">你好,请登录</a>
</li>
</c:otherwise>
</c:choose>
```
在这个优化后的代码中,我们使用了`<c:choose>`标签来进行条件判断,如果`session`中存在`user`,则显示用户信息,否则显示登录按钮。这样可以减少重复代码,使代码更加简洁易懂。同时,我们将第二个`<c:if>`标签中的判断条件改为`${sessionScope.user eq null}`,使其更加准确。
阅读全文