无法设置JSTL用户变量而不是java.lang.String

时间:2018-07-15 11:25:06

标签: java jsp jstl

所以我下面列出了一个代码,如果要添加到新变量中,我想从会话范围中设置$ {tempUser}或从请求范围中设置$ {userToEdit},这样我就不需要重复我的代码并使用$ {userBean.login}等 问题在于userBean仍然是字符串,并且会引发异常(无登录属性)。如何在此处创建用户类型的变量?

    <c:set var="userBean" scope="page">${tempUser}</c:set>

    <c:if test="${not empty userToEdit}">
        <c:set var="userBean">${userToEdit}</c:set>
    </c:if>

    <div class="section no-pad-bot" id="index-banner">
        <div class="container">
            <h2 class="header center orange-text">
                <c:choose>
                    <c:when test="${not empty userToEdit}">
                        Edit user
                    </c:when>
                    <c:otherwise>
                        Add user
                    </c:otherwise>
                </c:choose>
                <c:out value="${userBean}"/>
                ${userBean.login}
            </h2>
        </div>
    </div>

1 个答案:

答案 0 :(得分:2)

<c:set var="userBean" scope="page" value="${tempUser}" />
<c:if test="${not empty userToEdit}">
    <c:set var="userBean" value="${userToEdit}" />
</c:if>

或者简单地

<c:set var="userBean" value="${(empty userToEdit) ? tempUser : userToEdit}" />
相关问题