Как передать HashMap тегу forEach в xls, сгенерированном Jett?
У меня есть карта в управляемом бобе
private Map<FaseProducao, Set<FichaTecnicaOperacao>> fichasTecnicasOperacaoResumo;
что ссылка на сущность FichaTecnica:
public class FichaTecnica{
//...
private Set<FichaTecnicaOperacao> operacoes;
}
который мне нужно передать в качестве параметра для beans.put (), чтобы сгенерировать xls с помощью jett:
public void createRelatorioFichaTecnica(FichaTecnica fichaTecnica) throws IOException {
//ommited...
Map<String, Object> beans = new HashMap<String, Object>();
beans.put("operacaoResumo", fichasTecnicasOperacaoResumo);
try (ByteArrayOutputStream saida = new ByteArrayOutputStream();
InputStream template = this.getClass().getResourceAsStream("/templates/jett/fichaTecnica.xls");
Workbook workbook = transformer.transform(template, beans);) {
//ommited...
}
}
когда генерируется xls, возникает исключение:
WARNING [javax.enterprise.resource.webcontainer.jsf.lifecycle] (default task-28) #{ProdutoManagedBean.createRelatorioFichaTecnica(row)}: net.sf.jett.exception.AttributeExpressionException: Expected a "java.util.Collection" for "items", got a "java.util.HashMap": "${operacaoResumo}".
так что я не понимаю эту ошибку, потому что карта является правильной коллекцией? Так почему же он не распознает его в items = "$ {operacaoResumo}"? Я создал это для каждого на основе ссылки на сайте: http://jett.sourceforge.net/tags/forEach.html
0 ответов
Как сказал @rgettman, я сделал:
public void createRelatorioFichaTecnica(FichaTecnica fichaTecnica) throws IOException {
//ommited...
Map<String, Object> beans = new HashMap<String, Object>();
beans.put("operacaoResumo", fichasTechicasOperacaoResumo.keySet());
}
Спасибо вам всем!