最近遇到了  jstl 标签的问题,
 <c:choose>
       <c:when test="${brand.shopId}==“这里打算获取session值”">
                 
    <a href="javascript:void(0);" onClick="editForm(${brand.id});"><img src="                           <%=ctxPath%>/image/admin/btn_edit.gif"/>修改</a>
    <a href="#" onClick="del(${brand.id});"><img src="<%=ctxPath%>/image/admin/btn_delete.gif"/>删除</a>
      </c:when>
       <c:otherwise>
    <a href="javascript:void(0);" onClick="editForm(${brand.id});"><img src="<%=ctxPath%>/image/admin/btn_field.gif"/>查看</a>
      </c:otherwise>
   </c:choose>
 这里的问题是 <c:when test="${brand.shopId}">  session值获取失败,我尝试用
${sessionScope.user.name} 从session范围内取出对象
我尝试这样 <c:when test="${brand.shopId}==((AccountDto)${sessionScope.(Constants.USER_SESSION_KEY)}).getShopId()">  没有用
还有这样  <c:when test="${brand.shopId==<%=((AccountDto)request.getSession().getAttribute(Constants.USER_SESSION_KEY).getShopId())%>}">
也没有效果 ,不知是不是语法问题还是其他什么!
望遇到过这样问题的朋友  ,帮忙!

解决方案 »

  1.   

    你自己写错了,test里面就一个${}
    不要这样
      <c:when test="${brand.shopId}==${sessionScope.user.name}">要这样
     <c:when test="${brand.shopId==sessionScope.user.name}">
      

  2.   

    我 尝试这样写
     <c:when test="${brand.shopId==sessionScope.Constants.USER_SESSION_KEY.shopId}">
      结果还是不对,当shopId都为66  该条记录还是 对应的不是修改 ,删除 而是 查看。说明sessionScope.Constants.USER_SESSION_KEY.shopId 值是不对的。我在我的LoginAction中 是这样定义类型的。
    AccountDto dto = accountService.userLogin(loginName, password);
    session.put(Constants.USER_SESSION_KEY, dto);
    然后 (Constants.USER_SESSION_KEY)值的类型是Dto,尝试这样写
     <c:when test="${brand.shopId==((AccountDto)sessionScope.(Constants.USER_SESSION_KEY).getShopId()}">
    这样写会报El语法错误 。大家给点建议。
      

  3.   

    上面写错了点 应该为这样
    <c:when test="${brand.shopId==((AccountDto)sessionScope.(Constants.USER_SESSION_KEY)).getShopId()}">