目前框架选型是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的,请指教。
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Struts2框架在Liferay平台上开发Portlet。首先,我们需要准备相关的开发环境和依赖库。Liferay是一款开源的企业级门户平台,而Struts2是一个流行的MVC(模型-视图-控制器)框架,...
通过上述步骤,我们可以了解到在Liferay环境中使用Struts2开发Portlet的具体流程。整个过程涉及了开发环境的搭建、项目创建、Portlet类的编写以及Struts配置文件的设置等多个环节。这些步骤不仅为初学者提供了清晰的...
Struts2 JSR168 Portlet的开发是构建在Java Portlet规范(JSR168)基础上,结合流行的MVC框架Struts2来创建适用于企业级门户平台的应用组件。这种开发方式允许开发者利用Struts2的强大功能,如Action、Interceptor、...
在 WebSphere Portal 上构建 Portlet 应用时,Struts 2 可以为开发者提供一个结构化的开发环境,使应用程序更加灵活和易于管理。下面将详细介绍如何基于 Struts 2 构建 WebSphere Portal 上的 Portlet 应用。 1. **...
为了更好地理解如何在Liferay 6中使用Struts2开发Portlet,我们可以参考Struts2自带的portlet示例`struts2-portlet-2.1.8.1.war`。该示例位于Struts2解压包下的`apps`目录内,它是基于Pluto (Apache的Portal实现) 的...
在IT行业中,开发Web应用程序时,常常会使用到各种框架来提高开发效率和代码质量。Struts是一个非常流行的Java EE框架,它主要用于构建基于MVC(Model-View-Controller)设计模式的Web应用。MyEclipse则是一款强大的...
在Liferay门户平台中,开发基于Struts2的portlet是实现动态网页和交互功能的重要方式。以下是一个详细的步骤指南,涵盖了从项目准备到portlet创建的所有关键环节。 ### 一、准备工作 首先,你需要下载以下软件和...
Struts2使用它来实现动态代理,以便于拦截和增强Action执行过程。 `freemarker-2.3.19.jar`是FreeMarker模板引擎,用于生成动态内容。在Struts2中,FreeMarker常用来生成视图层HTML代码,与Action返回的结果相结合...
9. **struts2-freemarker-plugin.jar**:Freemarker是一个模板引擎,这个插件让Struts2可以使用Freemarker作为视图技术。 10. **struts2-soap-plugin.jar**:支持SOAP Web服务,使Struts2应用可以作为服务提供者或...
例如,它们展示了如何定义Action类,Action类是如何与视图层(JSP或FreeMarker模板)交互的,以及如何使用Struts 2的配置文件(struts.xml)来定制应用程序的行为。此外,它们还演示了如何利用Struts 2的拦截器链...
- **安全考虑**:Struts2的安全性问题曾被广泛关注,理解如何避免XSS、CSRF等攻击是开发安全应用的重要环节。 这些示例应用提供了丰富的实践场景,可以帮助开发者深入理解和掌握Struts2框架的工作原理和最佳实践。...
- `struts2-developer-plugin.jar`: 提供了开发工具,如开发时的错误信息增强,帮助开发者调试应用程序。 总的来说,Struts2的jar包构成了一个完整的MVC框架,涵盖了从请求处理、业务逻辑、数据验证、视图渲染到...
【标题】"jsr168portlet(struts2+spring2.5+hibernate3.3)" 是一个基于Java的Web开发项目,它利用了JSR 168规范来实现portlet的功能,并结合了Struts2、Spring2.5和Hibernate3.3这三个框架的强大功能。JSR 168是Java...
通过"FirstStruts"项目,初学者可以快速掌握Struts框架在portlet环境中的应用,为进一步学习其他Java Web技术和企业级开发打下坚实的基础。在实践中不断探索和学习,你将能熟练地驾驭Struts框架,为你的编程生涯开启...
15. 日志记录:Struts2也支持日志记录,可以帮助开发者在开发和部署过程中进行问题诊断。 16. 常见问题解答(FAQs):提供一些常见的问题以及解决办法。 17. CookBook:CookBook部分提供了许多特定的场景示例,...
- **参考价值**:本书覆盖了Struts2.1近80%的API,不仅可以作为学习指南,还能作为开发过程中遇到问题时查阅的手册。 - **学习路径**:建议按照章节顺序逐步学习,从基础概念入手,逐步深入到高级特性。同时,通过...
struts2-portlet-plugin-2.5.2.jar, struts2-rest-plugin-2.5.2.jar, struts2-sitegraph-plugin-2.5.2.jar, struts2-sitemesh-plugin-2.5.2.jar, struts2-spring-plugin-2.5.2.jar, struts2-testng-plugin-2.5.2.jar...
struts2-portlet-plugin-2.5.10.jar,struts2-rest-plugin-2.5.10.jar,struts2-sitegraph-plugin-2.5.10.jar,struts2-sitemesh-plugin-2.5.10.jar,struts2-spring-plugin-2.5.10.jar,struts2-testng-plugin-2.5.10....
在Struts2中,结果(Result)是Action执行后控制流程的重要部分,它负责将处理后的数据或者控制逻辑转向合适的视图。这篇博文将深入探讨Struts2中的result配置以及各种视图转发类型。 首先,让我们理解Result的基本...