在我的 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/