Expression product.style is undefined on line 13, column 88 in ProductDetails.html. The problematic instruction: ---------- ==> assignment: canonical="http://www.ebuy9.com/ProductDetails-"+product.id+"/"+util.getI18N(product.style.name,"EN")?replace(" ","-")+"-"+util.getI18N(product.color,"EN")+".html" [on line 13, column 1 in ProductDetails.html] ---------- Java backtrace for programmers: ---------- freemarker.core.InvalidReferenceException: Expression product.style is undefined on line 13, column 88 in ProductDetails.html. at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124) at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:134) at freemarker.core.Dot._getAsTemplateModel(Dot.java:78) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.ListLiteral.getModelList(ListLiteral.java:125) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:89) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.RegexBuiltins$replace_reBI._getAsTemplateModel(RegexBuiltins.java:145) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:86) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.AddConcatExpression._getAsTemplateModel(AddConcatExpression.java:78) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.AddConcatExpression._getAsTemplateModel(AddConcatExpression.java:77) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.AddConcatExpression._getAsTemplateModel(AddConcatExpression.java:77) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.AddConcatExpression._getAsTemplateModel(AddConcatExpression.java:77) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Assignment.accept(Assignment.java:90) 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 com.hantangit.b2c.main.AnnotationMappingServlet.dispathe(AnnotationMappingServlet.java:259) at com.hantangit.b2c.main.AnnotationMappingServlet.access$1(AnnotationMappingServlet.java:107) at com.hantangit.b2c.main.AnnotationMappingServlet$1.doInTransaction(AnnotationMappingServlet.java:489) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128) at com.hantangit.b2c.main.AnnotationMappingServlet.service(AnnotationMappingServlet.java:482) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:662)