Integração do Struts 2+Spring+Hibernate

1 resposta
M

Alo Gente,

Sou novato no desenvelvimento de aplicações Web com com JAVA, depois de muitas leituras dos Frameworks decide avançar no desenvolvimento de uma aplicação tomando como exemplo disponivel em http://cwiki.apache.org/S2WIKI/struts-2-spring-2-jpa-ajax.html.

Depois de seguir paço-a-paço não tive sucesso, logo que arranca a aplicação dá o seguinte erro:

FreeMarker template error!

Expression parameters.pushId is undefined on line 24, column 6 in template/ajax/a-close.ftl.
The problematic instruction:

==> if parameters.pushId [on line 24, column 1 in template/ajax/a-close.ftl]

Java backtrace for programmers:

freemarker.core.InvalidReferenceException: Expression parameters.pushId is undefined on line 24, column 6 in template/ajax/a-close.ftl.

at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)

at freemarker.core.Expression.isTrue(Expression.java:145)

at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:77)

at freemarker.core.Environment.visit(Environment.java:209)

at freemarker.core.MixedContent.accept(MixedContent.java:92)

at freemarker.core.Environment.visit(Environment.java:209)

at freemarker.core.Environment.process(Environment.java:189)

at freemarker.template.Template.process(Template.java:237)

at org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:182)

at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:559)

at org.apache.struts2.components.Anchor.end(Anchor.java:145)

at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)

at org.apache.jsp.index_jsp._jspx_meth_s_005fa_005f0(index_jsp.java:216)

at org.apache.jsp.index_jsp._jspService(index_jsp.java:119)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

at java.lang.Thread.run(Thread.java:619)

FreeMarker template error!

Expression parameters.pushId is undefined on line 24, column 6 in template/ajax/div-close.ftl.
The problematic instruction:

==> if parameters.pushId [on line 24, column 1 in template/ajax/div-close.ftl]

Java backtrace for programmers:

freemarker.core.InvalidReferenceException: Expression parameters.pushId is undefined on line 24, column 6 in template/ajax/div-close.ftl.

at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)

at freemarker.core.Expression.isTrue(Expression.java:145)

at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:77)

at freemarker.core.Environment.visit(Environment.java:209)

at freemarker.core.MixedContent.accept(MixedContent.java:92)

at freemarker.core.Environment.visit(Environment.java:209)

at freemarker.core.Environment.process(Environment.java:189)

at freemarker.template.Template.process(Template.java:237)

at org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:182)

at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:559)

at org.apache.struts2.components.UIBean.end(UIBean.java:513)

at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)

at org.apache.jsp.index_jsp._jspx_meth_s_005fdiv_005f0(index_jsp.java:243)

at org.apache.jsp.index_jsp._jspService(index_jsp.java:122)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:80

Alguem me ajuda a resolver este problema

Estou a usar struts 2.1.8.1

1 Resposta

jyoshiriro

Amigo, esse tutorial é antigo.

Recomendo usar o Convention Plugin do Strust2 onde você não precisa de XML para mapeamentos de ação e de pouquíssimas anotações.

Para usar o Hibernate com Struts2 recomendo o Full Hibernate Plugin que faz a integração de maneira simples. Bem mais simples do que usando o Spring para fazer a integração. Este plugim aliás, dispensa o uso do Spring, ou seja, uma tecnologia a menos para dar manutenção e para gerar mais processamento :wink:

Criado 19 de janeiro de 2010
Ultima resposta 19 de jan. de 2010
Respostas 1
Participantes 2