我尽了最大努力,但没有成功。< code >索引操作加载正常,但当我导航到test时,生成了错误。不知道为什么会这样。
Using struts2 = 2.3.4.1
Tomcat latest
Tiles = 3.0.0
磅.xml
<properties>
<java.version>1.7</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<struts2.version>2.3.4.1</struts2.version>
<slf4j.version>1.6.6</slf4j.version>
<tiles.version>3.0.0</tiles.version>
</properties>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<!--Start Slf4j-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!--End Slf4j-->
<!--Start Struts2-->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts2.version}</version>
</dependency>
<!--End Struts2-->
<!-- Start Tiles dependencies -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-tiles-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-api</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-extras</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-ognl</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-freemarker</artifactId>
<version>3.0.0</version>
</dependency>
<!-- End Tiles dependencies -->
</dependencies>
struts.xml
<package name="default" namespace="/" extends="tiles-default">
<result-types>
<result-type name="tiles" default="true" class="org.apache.struts2.views.tiles.TilesResult"/>
</result-types>
<default-action-ref name="index"/>
<action name="index" class="com.myapp.tiles.action.Test">
<result type="tiles">/welcome.tiles</result>
</action>
<action name="test" class="com.myapp.tiles.action.Test">
<result type="tiles">test</result>
</action>
<action name="/**" class="com.myapp.tiles.action.Test">
<result>{1}</result>
</action>
</package>
平铺.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions >
<definition name="mainlayout" template="/templates/mainlayout.jsp">
<put-attribute name="meta" value="/templates/main/meta.jsp"/>
<put-attribute name="title" value=""/>
<put-attribute name="header" value="/templates/main/header.jsp"/>
<put-attribute name="search" value="/templates/main/search.jsp"/>
<put-attribute name="navigation" value="/templates/main/navigation.jsp"/>
<put-attribute name="body" value=""/>
<put-attribute name="footer" value="/templates/main/footer.jsp"/>
</definition>
<definition name="/welcome.tiles" extends="mainlayout">
<put-attribute name="title" value="Welcome To Person Management System"/>
<put-attribute name="body" value="/index.jsp"/>
</definition>
<definition name="test" extends="mainlayout">
<put-attribute name="title" expression="OGNL:title" />
<put-attribute name="body" value="/index.jsp"/>
</definition>
<definition name="WILDCARD:package/*" extends="mainlayout">
<put-attribute name="title" value="{1}" type="string"/>
<put-attribute name="body" value="/test.jsp"/>
</definition>
</tiles-definitions>
错误
Nov 17, 2012 8:28:51 AM org.apache.catalina.core.ApplicationContext log
java.lang.NoSuchMethodError: org.apache.tiles.access.TilesAccess.getContainer(Ljava/lang/Object;)Lorg/apache/tiles/TilesContainer;
at org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:100)
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:374)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:236)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:236)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
项目结构
首先检查您的库是否有重复或冲突的罐子。当您使用maven时,请尝试使用插件来检查重复的依赖项。
其次,尝试一下瓷砖2.x.x。我从未集成过 Struts 2 和 Tiles,但遇到了几个 Spring 3.x 和 Tile 3 没有发现异常
AjaxFileUpload 是一个在 Struts2 框架的支持下,实现无页面刷新的Ajax文件上传功能,上传是后台进行,不会影响页面的响应,而且提供上传的进度信息。
主要内容:创建主页:,创建视图:,创建动作:,配置文件:,Struts 2的注释类型:正如前面提到的,Struts提供了两种形式的配置。传统的方式是使用对所有配置struts.xml文件。到目前为止,我们已经看到了这样的例子很多。 Struts配置的另一种方法是使用Java5注释功能。使用Struts 注解,我们可以实现零配置。 要开始在你的项目中使用注释,确保WebContent/WEB-INF/lib文件夹中的jar文件包括以下: struts2-convention-pl
主要内容:Struts2 快速入门,Struts2 配置,Struts2 动作和表单,Struts2 拦截器,Struts 2 UI标签,Struts 2 控制标签,Struts2 数据标签,Struts2 资源包和本地化,Struts2主题,Struts2集成其它框架,Struts2 FAQ,Struts2 参考Apache Struts 2 是一种流行的 Java模型 - 视图 - 控制器(MVC)框架,成功地结合了 WebWork和Struts1.x 两种 web 框架。 Apache S
本节介绍与Struts2 Framework相关的各种模拟测试。 您可以在本地计算机上下载这些示例模拟测试,并在方便时离线解决。 每个模拟测试都提供一个模拟测试密钥,让您自己验证最终得分和评分。 Struts2 Mock Test I 问题1 - 以下哪项是MVC架构中模型的正确定义? A - 负责维护数据的模式的最低级别。 B - 负责向用户显示全部或部分数据。 C - 控制模型和视图之间交互的
亲爱的读者们,这些Struts2 Interview Questions专门设计用于让您熟悉Struts2 Programming主题面试中可能遇到的问题的本质。 根据我的经验,优秀的面试官在你的面试中几乎没有计划提出任何特定的问题,通常问题从这个主题的一些基本概念开始,后来他们继续基于进一步的讨论和你回答的问题 - 什么是Struts2? Struts2是基于MVC设计模式的流行且成熟的Web应
更新:目前已迁移至项目:http://git.oschina.net/xProject/jWeb,改项目会持续不断进行维护,和公司内部代码保持同步。 struts2-mvc-template 是基于 struts2 的 Java-mvc 后台快速开发框架 框架特色 (1)基于struts2的java-mvc后台快速开发框架 (2)易于拓展,极少的修改量便可以从struts2-mvc变成spring