java - jsp:param 不显示期望值

标签 java spring jsp

在我的 spring 项目中,我有两层 View :

1) 我的 Controller 中的每个方法都直接映射到这样的 jsp 页面:

<jsp:include page="../../common/listagem.jsp">
    <jsp:param name="name" value="Usuario"/>
    <jsp:param name="elements" value="{['login','senha','pnome','unome','email']}"/>
</jsp:include>

2)我的jsp页面common/listagem.jsp是这样的:

<%@ include file="../include/header.jsp" %>

<sec:authorize access="hasPermission(#user, 'cadastra_${param.name}')">
<p>
    <button type="button" class="btn btn-sm btn-link link" data-action="/${param.name}/cadastra">
        Cadastrar novo ${param.name}
    </button>
</p>
</sec:authorize>

<table class="bordered">
    <thead>
        <tr>
        <c:forEach var="item" items="${param.elements}">
            <th> <c:out value="${item}"/> </th>
        </c:forEach>
        </tr>
    </thead>

    <tbody class="content">
    </tbody>

    <tfoot>
        <tr>
            <sec:authorize access="hasPermission(#user, 'altera_${param.name}')">
                <td class="comando" data-nome="Altera" data-action="/${param.name}/altera"></td>
            </sec:authorize>
            <sec:authorize access="hasPermission(#user, 'remove_${param.name}')">
                <td class="comando" data-nome="Remove" data-action="/${param.name}/remove"></td>
            </sec:authorize>
        </tr>
    </tfoot>
</table>

<c:url value="/${param.name}/listagem.json" var="listagem"/>
<script>
$(document).ready(function(){
    load_content("${listagem}", $('table.bordered'));
});
</script>

<%@ include file="../include/footer.jsp" %>

我的问题完全出在上面的页面上。这段代码的最终结果是:

但应该只在顶部显示列的标题和代码:

<c:url value="/${param.name}/listagem.json" var="listagem"/>
<script>
$(document).ready(function(){
    load_content("${listagem}", $('table.bordered'));
});
</script>

应该用来自服务器的数据填充表格(此代码在我的其他项目中工作,我不使用包含文件和 jsp:param)。

任何人都可以看出这段代码有什么问题吗?

最佳答案

你可以试试JSP JSTL Functions但它更像是一个 JSON 字符串,所以请尝试使用 Jackson JSON Parser .

查找关于 Jackson 解析器的教程 here .

示例代码:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

<c:set var="elements" value="${param.elements}" />
<c:forEach var="item"
    items="${fn:split(fn:substring(elements,2,fn:length(elements)-2),',')}">
    <c:out value="${item}" />
</c:forEach>

输出:

'login' 'senha' 'pnome' 'unome' 'email' 

关于java - jsp:param 不显示期望值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24234289/

相关文章:

java - 登录过滤器导致重定向循环

java - 使用 JNLP 文件启动应用程序

java - JSP 为俄语文本提供带问号的页面

java - 如何修复数组的前三个元素(一直显示为零)?

java - 如何仅为一个特定类创建新的 Spring bean,而不是为应用程序的其余部分创建 Singleton

java - 如何在页面上配置没有登录服务的Spring Social

java - 正则表达式和 SftpStreamingInboundChannelAdapterSpec

java - 在方法签名/字段中查找不兼容性的工具

java - 使用 pojo 数组将 Json 数组转换为 Pojo 时出现问题

java - 如何从 Spring Boot 项目创建 jar,我们想在另一个 Spring Boot 应用程序中使用这个 jar?