最近在学习 struts2
想以它为基础整合一下 spring和 ibatis 弄个通用demo 以后做项目用
后来有想把 tiles 也搞进去 可以确出来一堆的问题 困扰了我 两天 最后终于解决了
好了 废话不多说 就把我遇到的问题和解决方法拿出来和大家分享一下
在参考 struts2 showcase 后 就试着把tiles 整合到自己的应用里
可是 没有想到 这么简单的几行配置到我的应用里就愣是 出了问题。
1. tiles.xml 配置 问题 :
把showcase 的 配置文件的内容拷贝过来 没有想到直接就出了问题
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://struts.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="showcase.index" template="/tiles/layout.jsp">
<put name="title" value="Tiles Showcase"/>
<put name="header" value="/tiles/header.jsp"/>
<put name="body" value="/tiles/body.jsp"/>
</definition>
</tiles-definitions>
这是官方的配置 照抄过来 竟然报错 真是快 吐血了
看了一下提示说:
ERROR [http-8080-Processor24] - Error executing tag: Attribute 'title' not found.
org.apache.tiles.TilesException: Attribute 'title' not found.
at org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:112)
at org.apache.tiles.jsp.taglib.RenderTagSupport.execute(RenderTagSupport.java:171)
at org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75)
at org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80)
at org.apache.jsp.tiles.layout_jsp._jspx_meth_tiles_005fgetAsString_005f0(layout_jsp.java:105)
at org.apache.jsp.tiles.layout_jsp._jspService(layout_jsp.java:62)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
定义 Attribute 'title' not found. 而且是所有的 页面都没有找到
看了一下配置文件 没有问题呀 。于是就检查 jar 看看是不是 少包
看了一下 所有的包又都还在 于是乎 就觉 包的版本不对 就把 showcase 里的 jar 全弄了过来。 这下应该好了把
唉:结果问题依旧。
于是乎我就开始 baidu 和 谷歌 ,狂搜了大半天 也没有什么结果。 后来就 把 tiles 的文档也都下载下来。看了一下。发现:
dtd 的语法定义和官方的不一样 。
struts2 提供的 是
http://struts.apache.org/dtds/tiles-config_2_0.dtd
<put name="title" value="Tiles Showcase"/>
而tiles 自己的是
http://tiles.apache.org/dtds/tiles-config_2_0.dtd
<put-attribute name="title" value="Tiles Showcase"/>
于是就把 tiles 的配置改成了下面的配置 。运行了一下 果然很神奇,没有再报上面的错误
至此问题终于解决了。
回头想了一下 还真是有点可笑。竟然被这两行代码 弄得 晕头转向。也在心里"祝福"了一下开发 struts2 大大们
分享到:
相关推荐
1. **Integration Setup**: 集成Struts2和Tiles需要添加相应的jar包到项目类路径中,包括struts2-core、struts2-tiles-plugin等。 2. **Tiles插件配置**: 在Struts2的配置文件中,需要启用Tiles插件,并指定Tiles的...
总结一下,集成Struts2和Tiles2的关键步骤包括:引入依赖库、配置Struts2和Tiles2的配置文件、定义页面布局和组件、在Action中返回Tiles定义名。通过这种方式,开发者可以更好地组织和管理Web应用的视图部分,同时...
通过阅读和学习《Struts2+Tiles》相关的博客文章(如博文链接所示),你可以深入理解这两者的集成方式,如何配置Struts2的struts.xml和tiles.xml文件,以及如何在Action中使用Tiles API来决定页面内容。此外,你还能...
- **struts2-tiles-plugin**:这个插件包含了Struts2与Tiles的集成代码,使得开发者能够使用Tiles的特性。 - **tiles-config.xml**:这是Tiles的配置文件,其中定义了页面模板和组件的映射。 - **Action类**:Struts...
在本篇文章中,我们将深入探讨如何在Struts2中集成Tiles框架,以及如何利用它来展示信息。 首先,我们来理解一下Tiles的核心概念。Tiles的主要功能是将一个大的网页拆分成多个小的部分,称为“tiles”或“组件”。...
在集成Tiles2到Struts2项目中,首要任务是引入必要的jar包。这些包包括`commons-digester`、`xwork`、`tiles-core`、`tiles-api`、`struts2-tiles-plugin`和`struts2-core`等。这些库提供了Tiles2的核心功能以及与...
在Struts2中集成Tiles,首先需要在项目的`pom.xml`或`build.gradle`文件中添加Tiles的依赖,这里我们使用的是Tiles2.0.6版本。确保添加的依赖与Struts2.0.12兼容。例如,在Maven项目中,你可以添加如下依赖: ```...
在Struts2中集成Tiles,需要在`struts.xml`配置文件中添加Tiles插件,然后在`tiles.xml`中定义页面模板。配置完成后,Action可以通过返回一个特定的结果代码来调用对应的Tiles定义。 6. **最佳实践** - 尽量将...
总的来说,"struts2 tiles实例 eclipse下运行"涵盖了Struts2框架和Tiles插件的集成使用,以及在Eclipse开发环境下的配置和调试步骤。通过这个实例,你可以深入理解这两个组件如何协同工作,提供高效、灵活的Web应用...
在Struts2中集成Tiles,可以实现更复杂的页面布局和视图控制。通过使用Tiles插件,我们可以创建一个Tiles配置文件,该文件定义了页面的各个部分,如头部、主体和底部,然后在Action中根据需要引用这些定义。 在提供...
学习这个Demo,开发者可以了解到如何在Struts2中集成Tiles2,具体步骤可能包括: 1. **添加依赖**:在项目中引入Struts2和Tiles2的依赖库。 2. **配置Struts2**:在struts.xml中启用Tiles插件,并配置拦截器。 3. *...
这篇文章将深入探讨Struts2与Tiles的集成配置及其相关知识点。 首先,理解Tiles的核心概念至关重要。Tiles允许开发者定义模板(template),这些模板可以被视为页面布局的组成部分。通过将内容插入到这些模板中,...
在Struts2中集成Tiles,我们需要以下步骤: 1. **添加依赖**:在项目的pom.xml文件或lib目录中,添加Tiles和Struts2相关的JAR包,确保项目能够识别和使用这两个库。 2. **配置struts-plugin.xml**:在Struts2的...
### Struts-2.1.6整合Tiles2全攻略 #### 一、概述 本文将详细介绍如何在Struts-2.1.6框架中整合Tiles2,并通过具体步骤指导完成整个配置过程。对于那些希望利用Struts2和Tiles2来构建高效、可维护的Web应用的...
Spring3 MVC 集成 Tiles2 是一个...总而言之,Spring3 MVC 与 Tiles2 的集成提供了一种高效、模块化的解决方案,帮助开发者构建复杂的 Web 应用程序。通过合理的配置和使用,我们可以实现更优雅、更易维护的页面结构。
通过以上步骤,我们就完成了Struts2与Tiles的集成,实现了页面的模块化和复用。在实际应用中,可以根据需要创建更多的定义和模板,构建复杂的页面布局。这种分层设计使得页面的管理和维护变得更加方便,也提高了代码...
在Struts中集成Tiles,我们需要完成以下步骤: 1. **添加依赖**:在项目中引入Struts和Tiles的库文件,通常是struts.jar和tiles-api.jar、tiles-compat.jar、tiles-core.jar等。 2. **配置Struts**:在struts-...
书中通过实例演示了如何将Struts 1应用迁移到Struts 2,使开发者能够理解两者的差异和集成方法。 Struts 2的关键特性包括: 1. **Action类与Result**:Struts 2中的Action类替代了Struts 1的Form Bean,负责处理...
5. `struts2-convention-plugin.jar`和`struts2-spring-plugin.jar`:分别是约定优于配置插件和Spring集成插件,前者简化了Action配置,后者则帮助将Struts2与Spring容器整合。 6. `struts2-dojo-plugin.jar`和`...
Struts 2同样支持Tiles,但集成更加紧密。在Struts 2中,Tiles被称为Tiles 2,它可以利用Struts 2的拦截器机制,使页面布局和动作处理更加灵活。同时,Struts 2内置了验证框架,类似于Struts 1的Validator,但更加...