在使用struts2的freemarker开发portlet时遇到问题

目前框架选型是struts2+spring+ibatis,表示层使用freemarker实现模板技术,使用portlet技术。

整个框架已经可以使用了, 但在使用freemarker的时候遇到一个问题。

使用struts2的sample运行没有问题,freemarker也可以使用,我自己加了一个action,但总是出现以下错误。

java.lang.IllegalStateException: Not allowed in a portlet at

org.apache.struts2.portlet.servlet.PortletServletRequest.getRequestURI(PortletServletRequest.java:173) at

org.apache.struts2.RequestUtils.getServletPath(RequestUtils.java:42) at

org.apache.struts2.views.util.ResourceUtil.getResourceBase(ResourceUtil.java:29) at

org.apache.struts2.views.freemarker.PortletFreemarkerResult.executeRenderResult

(PortletFreemarkerResult.java:148) at

org.apache.struts2.views.freemarker.PortletFreemarkerResult.doExecute

(PortletFreemarkerResult.java:111) at org.apache.struts2.dispatcher.StrutsResultSupport.execute

(StrutsResultSupport.java:186)

 2008-07-03 17:11:51,781 ERROR [org.jboss.portal.portlet.container.org_apache_struts2_portlet_dispatcher_Jsr168Dispatcher] The portlet threw an exception javax.portlet.PortletException: Error executing action freemarkerDirect

at org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:452)

at org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher.render(Jsr168Dispatcher.java:321)

at org.jboss.portal.portlet.container.PortletContainer.invokeRender(PortletContainer.java:518)

at org.jboss.portal.portlet.container.PortletContainer.dispatch(PortletContainer.java:434)

奇怪的是,我就是把这个action的result类型改成velosity,它还是报freemarkerDirect错误。 有谁在portlet环境下使用struts2中的freemarker的,请指教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值