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

标签 java jsp jstl

所以我有下面列出的代码,我想从 session 范围设置 ${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>

最佳答案

<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}" />

关于java - 无法设置 JSTL 用户变量而不是 java.lang.String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51347912/

相关文章:

java - 使用 URLConnection 访问时连接超时

java - 脚本修改后部署的 Web 应用程序中发生 Groovy 转换异常

java - 是否可以在 jsp 中根据条件设置页面内容类型或为单个 jsp 设置不同的内容类型

java - 使用 JSTL 每个表行显示 java 列表内容

java - 为什么 int = int * double 会报错而 int *= double 不会(在 Java 中)?

java - APPLICATION_STREAM_JSON_VALUE 和 APPLICATION_NDJSON_VALUE 的区别

javascript - 使用 jsp 中的循环向 javascript 发送请求时覆盖数据

java - 严重 : Servlet. servlet [jsp] 的 service() 引发异常 java.lang.NumberFormatException

java - 条件检查 c :if always fails

java - c :forEach loop printing square bracket delimiters