2014-06-15 110 views
2

以我弹簧项目,我有我的意见两层:JSP:PARAM不显示预期值

1)从我的控制器直接映射一个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页面常见/ 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> 

应填写表格与数据服务器(这个代码在我的其他项目中工作,我不使用include文件和jsp:param)。

任何人都可以看看有什么不对的代码?

+0

你期待什么?它是字符串,并按原样显示。 – Braj

+0

难道你错过了'$'? – shmosel

+0

@Braj我应该使用什么形式? –

回答

0

OK,我解决了使用数组存储值这个问题,这样的:

<jsp:param name="elements" value="login"/> 
<jsp:param name="elements" value="pnome"/> 
<jsp:param name="elements" value="unome"/> 
<jsp:param name="elements" value="email"/> 

,并在常见的jsp页面:

    <c:forEach var="item" items="${paramValues.elements}" varStatus="status"> 
         <th class="col" data-property="<c:out value="${item}"/>"> 
          <c:out value="${paramValues.label[status.index]}"/> 
         </th> 
        </c:forEach> 
0

您可以JSP JSTL Functions尝试,但它更像是一个JSON字符串所以用Jackson JSON Parser尝试。杰克逊解析器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'