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 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘