shengye49 2010-06-28 00:45
浏览 320
已采纳

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

  • 写回答

1条回答

  • 郜景涛 2010-06-28 10:47
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)