tomcat-taglibs-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andy" <>
Subject RE: c:choose not evaluating correctly
Date Tue, 31 May 2005 09:36:33 GMT

Thanks, but I still get the same result, it's as if the 'test' function just
refuses to work. Here's the test page I'm using -

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ taglib uri="" prefix="c"%>

    <link rel="stylesheet" type="text/css"
          href="<html:rewrite page="base.css" />" />
    <title><bean:message key="welcome.title"/></title>

<jsp:useBean id="userSession" scope="session"
<jsp:getProperty name="userSession" property="username"></jsp:getProperty>

        <c:when test="${null == userSession.username}">
            <html:link action="/login"><bean:message key=""/>
            <html:link action="/logout"><bean:message

>-----Original Message-----
>From: Lieven De Keyzer []
>Sent: 30 May 2005 23:32
>Subject: RE: c:choose not evaluating correctly
>Try using
><c:when test="${null == sessionScope.userSession}">
>>From: "Andy" <>
>>Reply-To: "Tag Libraries Users List" <>
>>To: <>
>>Subject: c:choose not evaluating correctly
>>Date: Mon, 30 May 2005 20:31:52 +0100
>>Hi All,
>>I have a menu in which I want to display a 'login' link when an object
>>called 'userSession' does not exist in the session scope, and a 'logout'
>>link when the 'userSession' object does exist in the seesion scope.
>>I'm using Struts, and the 'userSession' object is set in an
>>method when a form is submitted containing a valid username and password
>>i.e. -
>>         UserSession s = new UserSession();
>>         s.setUsername(username);
>>         // Save the user session object
>>         request.getSession().setAttribute("userSession",s);
>>So I figure this is all I have to do is -
>>     <c:choose>
>>         <c:when test="${empty sessionScope.userSession}">
>>             <html:link action="/login"><bean:message
>>         </c:when>
>>         <c:otherwise>
>>             <html:link action="/logout"><bean:message
>>         </c:otherwise>
>>     </c:choose>
>>However in the test case where I have not logged in, so the action that
>>the userSession object is not invoked, this doesn't work as expected. The
>>else part is always evaluated, indicating that sessionScope.userSession
>>isn't empty when I know it is! If I print out an attribute of the
>>userSession object -
>><jsp:getProperty name="userSession" property="username"></jsp:getProperty>
>>I get 'null' displayed - this is correct because the userSession object
>>doesn't exist, but the c:choose doesn't evaluate correctly.
>>Clearly I'm doing something wrong, but I just can't see what it
>is, or even
>>if it's a JSTL issue.
>>To unsubscribe, e-mail:
>>For additional commands, e-mail:
>To unsubscribe, e-mail:
>For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message