struts2 的 UIBean.mergeTemplate方法下 getTemplateEngine的问题。

先说明下本人情况,我以前view是用tapestry4.0的。现在在换工作期间现在学习这个struts2.没读什么书,表达能力有限,问题问的有点小白了希望大家能够理解耐心解答。
question:一切都从这个struts2验证开始。由于我使用了conversion解析了一个action的属性。这个属性是个引用对象。提交验证后。验证失败返回input页面。进行freemark这个页面
只要解析到这个对这个 对象控件的struts标签.然后就会出现一个HTTP 500 1231错误。而且服务器端查遍了所有日志文件都看不到异常信息。这个web容器就是万恶的jetty5.X.后来换成jetty6.X终于能看到异常信息。
Caused by:
org.apache.jasper.JasperException: Class: org.apache.struts2.components.template.TemplateEngineManager
File: TemplateEngineManager.java
Method: getTemplateEngine
Line: 102 - org/apache/struts2/components/template/TemplateEngineManager.java:102:-1

经过跟踪调式。发现他的其他值类型的控件默认TemplateEngine是使用FREEMARK。到了引用对象的那个控件就是一个字符串为.很长一串不记得了。大概是:noConversion*。然后到TemplateEngineManager去取TemplateEngine取出的是NULL.然后UIBean.mergeTemplate throws throw new ConfigurationException("Unable to find a TemplateEngine for template " + template);只要删除那个对象引用就能避免问题。但这个可不是我的最初目的啊。

反正现在脑袋很多问题说不出问题具细。。
我的struts2版本是2.1.8.1

0

1个回答

struts2 采用类似spring的方式注入数据,例如jsp
请求提交到后台action后,struts2是采用的setUser().setName()这种方式,所以你所说的 这个属性是个引用对象 那么你只要action中有这个对象的属性和set/get方法的话就能获取到一个注入了请求数据的对象,至于转化也不会是null的.. 至于你说的字符串应该是对应的引用的表现出来的。。这是我的理解. 看看能不能帮上忙吧.

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!