当前位置: 首页 > 知识库问答 >
问题:

瓦片与Struts 2的集成注释

束俊材
2023-03-14

我一直在尝试将瓷砖与基于Struts 2注释的操作集成,但它无法正常工作。

因为我没有struts-config.xml,所以在网络上的每个教程中,他们都用struts-config.xml引用它。

首先,将基于注释的struts动作与tiles集成是可能的。如果是,那么怎么做?

@Action(value="/login",results={@Result(name="success",location="/home",type=TilesResult.class),
            @Result(name="login",location="/jsp/userLogin.jsp")})
    public String execute() {

这就是我的代码,但它总是在MyEclipse的<code>TilesResult处给我错误。类

Type mismatch: cannot convert from Class<TilesResult> to String

我的pom有依赖性:

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-tiles-plugin</artifactId>
    <version>2.1.8</version>
</dependency>

谁能帮助我如何在基于注释的动作中添加图块

我使用了type=“tiles”而不是type=TilesResult。类则它给了我以下异常

Caused by: The Result type [tiles] which is defined in the Result annotation on the class [class com.actions.LoginAction] or determined by the file extension or is the default result type for the PackageConfig of the action, could not be found as a result-type defined for the Struts/XWork package [com.actions#convention-default#] - [unknown location]
    at org.apache.struts2.convention.DefaultResultMapBuilder.createResultConfig(DefaultResultMapBuilder.java:422)
    at org.apache.struts2.convention.DefaultResultMapBuilder.createFromAnnotations(DefaultResultMapBuilder.java:394)
    at org.apache.struts2.convention.DefaultResultMapBuilder.build(DefaultResultMapBuilder.java:202)
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.createActionConfig(PackageBasedActionConfigBuilder.java:800)
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:586)
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:318)
    at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)

共有2个答案

汪凌
2023-03-14
  • “org.apache.tiles.impl.BasicTilesContainer.DINITION_CONFIG”此定义不适用于Strut 2.5.10.1
  • 我在项目中使用了以下jar。<ul>
  • 支柱2-core-2.5.10.1
  • 支柱2-常规-插件2.5.10.1
  • 支柱2-tiles-plugin-2.5.10.1
  • javax.servlet-api-3.0.1

请一旦您将您的网络与以下代码进行比较.xml。

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <init-param>
        <param-name>actionPackages</param-name>
        <param-value>com.demo.action</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<context-param>
    <!-- <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name> -->
    <param-name>org.apache.tiles.definition.DefinitionsFactory.DEFINITIONS_CONFIG</param-name>
    <param-value>/WEB-INF/config/tiles.xml</param-value>
</context-param>

<listener>
    <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
都乐逸
2023-03-14

试试这些:

>

  • 使用type=“tiles”而不是type=“TilesResult.class”

    在结果位置中使用目标磁贴定义 location=“tiles-definition-name”,而不是 JSP 页面 location=“/jsp/userLogin.jsp”

    在您的网络中有以下关注.xml

    <代码>

    在您的< code>struts.xml中包含以下内容(如果您只使用注释而没有< code>struts.xml,那么您必须为此创建一个最小的注释,因为没有可用于定义自定义结果类型的注释)

    <代码>

    注意:我在这里写了一篇关于这个问题的详细博客文章-使用Eclipse IDE通过约定/代码隐藏/零配置插件的Maven、Struts2注释和瓦片集成示例

  •  类似资料:
    • 主要内容:1. 工程结构,2. log4j.properties,4. Struts2 Action 和 Logging,5. Struts2配置,6. 实例测试在本教程中,我们学习如何将log4j框架在Struts2的Web应用程序集成。所有需要做的有: 包含 log4j.jar 作为项目依赖 创建一个 log4j.properties 文件,并把它放入 classpath 的根目录-放到资源文件夹中。 相关技术和工具的使用: Log4j 1.2.17 Struts 2.1.8 Tomcat

    • 主要内容:数据库设置:,Hibernate的配置:,环境设置:,Hibernate 类:,动作类:,创建视图文件:,Struts 配置:Hibernate是一个高性能的对象/关系持久性和查询服务许可下的开源GNU通用公共许可证(LGPL),并免费下载。在这一章中,我们要学习如何实现Struts2与Hibernate集成。如果你不熟悉与Hibernate,那么可以查看我们的Hibernate教程。 数据库设置: 在本教程中,我会使用“struts2_tutorial”MySQL数据库。我连接到我的

    • 在本章中,让我们通过Struts2的集成Tiles框架所涉及的步骤。 Apache的Tiles是一个内置的模板框架来简化Web应用程序用户界面的开发。 首先,我们需要从Apache Tiles 网站下载的files jar文件。需要添加下面的jar文件添加到项目的类路径。 tiles-api-x.y.z.jar tiles-compat-x.y.z.jar tiles-core-x.y.z.jar

    • Spring是一个流行的Web框架,它提供易于集成与很多常见的网络任务。所以,问题是,为什么我们需要Spring,当我们有Struts2?Spring是超过一个MVC框架 - 它提供了许多其它好用的东西,这是不是在Struts。例如:依赖注入可以是有用的任何框架。在本章中,我们将通过一个简单的例子来看看如何集成Spring和Struts2一起。 首先,需要添加下列文件到项目的构建路径从Spring

    • 主要内容:1. 工程目录结构,2. MySQL表结构脚本,4. Hibernate 相关配置,5. Hibernate ServletContextListener,6. Action,7. JSP 页面,8. struts.xml,9. 实例测试执行,参考在 Struts2 中,没有官方的插件集成Hibernate框架。但是,可以通过以下步骤解决方法: 注册一个自定义的 ServletContextListener 在 ServletContextListener 类, 初始化Hibernat

    • 主要内容:1. 工程结构,2. Spring监听器,3. 注册Spring Bean,4. Struts.xml,5. 示例,用例1,用例 2,参考在本教程中,我们来学习Struts2和Spring的集成。 1. 工程结构 下面的图是本教程的项目文件夹结构。 2. Spring监听器 配置Spring监听器 “org.springframework.web.context.ContextLoaderListener” 到 web.xml 文件中。 web.xml 3. 注册Spring Bean