在Struts中应用Tiles框架,利用ForwardAction进行跳转,但出现Path index-definition does not start with a "/" character的问题。此处的index-definition 是在tiles-defs.xml中定义的,作为struts-config中Action配置的parameter属性的值。
上述方法引用自网络,但运行中会出现
java.lang.IllegalArgumentException: Path index-definition does not start with a "/" character异常。
代码如下:
<action-mappings>
<action path="/index"
type="org.apache.struts.actions.ForwardAction"
parameter="index-definition">
</action>
</action-mappings>
<definition name="index-definition" path="/layout.jsp">
<put name="sidebar" value="sidebar.jsp"/>
<put name="header" value="header.jsp"/>
<put name="content" value="indexContent.jsp"/>
<put name="footer" value="footer.jsp"/>
</definition>
严重: Servlet.service() for servlet action threw exception
java.lang.IllegalArgumentException: Path index-definition does not start with a "/" character
at org.apache.catalina.core.ApplicationContext.getRequestDispatcher(ApplicationContext.java:379)
at org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(ApplicationContextFacade.java:195)
at org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:107)
at org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
at org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
分享到:
相关推荐
定义是Tiles框架中的核心元素,它描述了页面的组成结构,包括各个组件的位置和内容。定义可以包含其他定义,形成嵌套结构,这使得页面布局更加灵活。 4. **Tiles布局(Layout)** 布局是定义的一种特殊形式,它...
总之,Struts-Tiles是Struts框架中的强大工具,它简化了Web应用的页面布局和组件管理,使得开发者能更专注于业务逻辑而不是页面的结构设计。通过合理使用Tiles和定义,可以构建出高效、可维护的Web应用。
Struts2 Tiles框架是Java Web开发中的一个强大工具,它结合了Struts2框架和Tiles框架的优势,使得页面布局和视图管理变得更加高效和灵活。这个框架实例将帮助我们理解如何在实际项目中运用这两个技术。 首先,让...
应用Tiles框架时,需要注意所有页面必须是服务器端的JSP页面,而不是HTML页面,因为Tiles基于JSP技术。此外,Tiles框架包含了Tiles标签库,用于在JSP页面中操作和管理Tiles组件;配置文件用于定义和配置Tiles组件;...
Tiles框架则主要负责页面布局和组合,其特点包括: 1. **定义模板(Definition)**:Tiles定义了一个页面布局,可以包含多个区域(或称为部分),每个区域可以填充不同的内容。 2. **组件(Component)**:组件是...
同时,需要在Struts的配置文件(如struts-config.xml或struts2的struts.xml)中配置Tiles插件,并在应用的JSP页面中使用Tiles标签来组织内容。 总结起来,使用Struts中的Tiles模板需要一系列的jar包支持,这些库...
Struts2框架是基于Java的企业级Web应用开发框架之一,而Tiles则是一个用来组织页面布局的强大工具。将Struts2与Tiles结合使用,可以更加灵活地管理页面结构,实现统一的页面风格,提高开发效率。 #### 二、所需JAR...
**Tiles框架核心概念** 1. **Tiles Definition**: 定义了页面的模板结构,可以包含多个部分,如头部、主体、底部等。每个部分可以引用其他定义或者直接是具体的JSP页面。 2. **Tiles Container**: 负责解析和组装...
在Struts2中,Tiles框架的主要功能包括: 1. **页面模板**:Tiles允许定义页面模板,这些模板包含可重用的页面片段,如头部、底部和侧边栏。这样,开发者可以在多个页面间共享相同的布局,提高代码复用性。 2. **...
Tiles框架是Struts框架中的一个重要组成部分,它提供了一种简单而强大的方式来构建复杂的网页布局。通过灵活使用Tiles标签,开发者可以轻松实现页面的模块化设计,提高代码的复用性和维护性。此外,Tiles还支持属性...
在探讨“Struts2 tiles操作例子”这一主题时,我们首先需要理解Struts2框架以及tiles插件在其中扮演的角色。Struts2是Apache软件基金会赞助的一个开源Web应用框架,它基于MVC(Model-View-Controller)设计模式,...
- **TilesPlugIn插件**:这是一个Struts插件,用于集成Tiles框架到Struts应用中,处理Tiles定义和请求解析。 在传统的JSP开发中,创建复合式网页通常依赖于JSP的`<jsp:include>`指令。然而,这种方式会带来代码冗余...
Tiles框架的核心是定义布局(Tiles Definition),这是一份XML文件,其中描述了页面的各个部分(或"部件")及其内容来源。部件可以是静态HTML、JSP页面或其他Tiles定义,实现页面的嵌套和复用。 在Struts中集成...
Struts2是一个强大的Java EE应用程序框架,用于构建MVC(模型-视图-控制器)架构的Web应用。Tiles2是另一个流行的Java库,它允许开发者将网页分解为可重用的部分,这些部分可以组合成更复杂的页面布局。MyEclipse10...
接下来,我们将深入探讨Tiles框架的配置及其在实际开发中的应用。 首先,Tiles框架基于Apache Struts项目,它提供了一种声明式的方式来定义页面布局。通过XML配置文件,我们可以指定页面的不同部分(如头部、主体、...
在Struts2中使用Tiles组件,可以更有效地管理和构建动态Web应用的用户界面。 首先,我们需要理解Tiles的基本概念。Tiles是一个视图框架,它的核心思想是页面模板和组合。通过定义模板,我们可以创建一个基本的布局...
通过以上步骤,我们不仅成功地在Tiles框架中添加了一个新的页面,而且还学习了如何使用Tiles框架来构建具有统一风格和外观的Web应用程序。Tiles框架的强大之处在于它的灵活性和可扩展性,它可以轻松地适应各种复杂的...
在本篇文章中,我们将深入探讨如何在Struts2中集成Tiles框架,以及如何利用它来展示信息。 首先,我们来理解一下Tiles的核心概念。Tiles的主要功能是将一个大的网页拆分成多个小的部分,称为“tiles”或“组件”。...
Tiles框架通过引入模板机制,解决了这个问题,它允许开发者定义可重用的组件,并在运行时动态插入到页面模板中。 Tiles的核心特性包括: 1. **创建可重用的模板**:Tiles允许开发者定义模板文件,这些模板可以包含...
在Struts2框架中,它提供了对这一模式的高效支持。 MVC组件在Struts2中的角色如下: 1. **模型(Model)**:通常由JavaBeans或DAO(数据访问对象)组成,负责处理业务逻辑和数据操作。在Struts2中,Action类扮演...