Olá Colegas, alguem ja desenvolveu algo usando Strut2 com JFreeChart?
Tenho um projeto Maven com a dependencia do Struts2, porem nao sei se preciso adicionar mais algun puglin de dependencia, no entanto adicionei o JFreeChart.
No entanto tenho a action que monta o relatorio mas dá Exception quando vai subir a aplicação dizendo que nao existe um result do tipo(type) chart.
O projeto usa annotation e por isso tentei essa anotation:
//imports aqui..
public class MyAction extends ActionSupport{
private JFreeChart chart;
@Action(results = {
@Result(name = SUCCESS, type = "chart ???", params = { "value", "chart", "type", "png","width","640","height","480" }),
@Result(name = ERROR, type = "velocity", location = "index.vm"),
@Result(name = INPUT, type = "velocity", location = "index.vm") })
public String execute(){
//Monta o grafico...
}
public JFreeChart getChart() {
return chart;
}
}
Alguem pode ajudar?
Obrigado
}
Bom, apesar do topico ser bem antigo, acho que muitos ainda utilizarão a dica:
Como você esta utilizando annotation, voce devera adicionar a anotação
@ParentPackage("jfreechart-default")
, que se equivale ao extends="jfreechart-default"
do struts.xml.
Feito isso, a Declaração de action é padrão, como por exemplo:
@Action(value="showGrafico", results = {
@Result(name = ActionSupport.SUCCESS, params = { "width","800","height","600" },type="chart")
})
que fara a chamada passando os parametros e o tipo (type) declarado na classe ChartResult da bibioteca struts2-jfreechart-plugin
public class ChartResult extends StrutsResultSupport {
private final static Logger LOG = LoggerFactory.getLogger(ChartResult.class);
private static final long serialVersionUID = -6484761870055986612L;
private static final String DEFAULT_TYPE = "png";
private static final String DEFAULT_VALUE = "chart";
.....
para mim desta maneira funcionou corretamente.
Onde coloco o @ParentPackage(“jfreechart-default”) ?
Dentro do action?
[quote=thiago hora]Onde coloco o @ParentPackage(“jfreechart-default”) ?
Dentro do action?[/quote]
É uma anotação da classe:
@ParentPackage("jfreechart-default")
@Namespace("/")
public class ClasseAction extends ActionSupport {
//Code here
}