使用jsp:include将数组从一个jsp页面传递给另一个jsp页面

时间:2014-07-06 11:35:03

标签: java spring jsp spring-mvc servlets

在我的spring应用程序中,对于每个实体类,我有一组共享一个共同结构的视图。常见的结构是存储在/ WEB-INF / jsp / common中的单独的jsp文件中。特定的jsp页面存储在/ WEB-INF / jsp / private /中,现在有这个内容:

<jsp:include page="../../common/listagem.jsp">
    <jsp:param name="entity" value="<Entity_name>"/>
</jsp:include>

除了param entity之外,我还需要向公共jsp页面传递一个带有实体属性的数组。我正在使用这样的东西:

<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:param name="elements" value="login,pnome,unome,email"/>

另外,在我的实体类的超类中,我有这个方法:

public List<String> getListaArgumentos() {
    List<String> lista = new ArrayList<String>();

    int counter = 0;
    String nome = this.getArgumentName(counter);
    do {
        lista.add(nome);
        nome = this.getArgumentName(++counter);
    }while(nome != null);

    return lista;
}

返回属性名称列表。如果我从我的构造函数这个列表传递到我的视图,有没有办法用它来替换{​​{1}}?

1 个答案:

答案 0 :(得分:2)

将此新值添加到控制器的ModelAndView中

           ModelAndView mav = new ModelAndView("your view");
           mav.addObject("arguments",getListaArgumentos());

然后你可以在创建include

之前将视图传递给像这样的共同点
        <c:set var="arguments" value="${arguments}" scope="request"/>

        <jsp:include page="../../common/listagem.jsp">

顺便说一句,永远不要用自己的语言来编码,记住最开发的社区是英语演讲者。