【问题标题】:Apache Tiles - Error when upgrading from Struts2.3 to 2.5Apache Tiles - 从 Struts2.3 升级到 2.5 时出错
【发布时间】:2017-08-15 10:05:21
【问题描述】:

在将我们的应用程序从 struts 2.3 升级到 2.5 时,我们收到以下错误。

包 org.apache.tiles.request 不存在

这是我们为执行方法修改的代码。

    package com.myeg.ins.web.control.helper;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.apache.tiles.Attribute;
import org.apache.tiles.AttributeContext;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.access.TilesAccess;
import org.apache.tiles.context.TilesRequestContextHolder;
import org.apache.tiles.preparer.PreparerException;
import org.apache.tiles.preparer.ViewPreparer;
import org.apache.tiles.request.Request;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MenuPreparer implements ViewPreparer 
{
    HttpServletRequest request = ServletActionContext.getRequest();
    HttpSession session = request.getSession();
    protected Logger logger = LoggerFactory.getLogger(this.getClass());
    TilesContainer tileContainer = TilesAccess.getCurrentContainer((Request) request);
    /*-----previous code while using tiles 2.0
    public void execute(TilesRequestContext tilesContext, AttributeContext attributeContext) throws PreparerException 
    {
        String ins=(String)session.getAttribute("insComp");
        logger.info("In Preparer Ins company is::::::"+ins);
        attributeContext.putAttribute("breadcrumbshead", new Attribute(ins));

    }*/
    @Override
    public void execute(Request tileContainer, AttributeContext attributeContext) {
        // TODO Auto-generated method stub

        String ins=(String)session.getAttribute("insComp");
        logger.info("In Preparer Ins company is::::::"+ins);
        attributeContext.putAttribute("breadcrumbshead", new Attribute(ins));
    }
}

【问题讨论】:

  • 欢迎来到 StackOverflow。尝试使问题的标题尽可能清晰,例如从您使用的技术开始,然后是问题所在。如果我是你,我也会先写一行解释错误是什么或下面的代码,而不是先写代码,然后再写注释来解释我们刚刚读到的内容。

标签: apache-tiles tiles-3


【解决方案1】:

我从未使用过 Apache Tile,但由于错误是:

包 org.apache.tiles.request 不存在

因为它发生在你提到的更新之后。在我看来,您应该为 org.apache.tiles.request 添加一个新版本。

如果你使用 maven 构建你的应用程序,你应该在 pom.xml 中将依赖更改为这个:

<dependency>
  <groupId>org.apache.struts</groupId>
  <artifactId>struts2-tiles3-plugin</artifactId>
  <version>${version.tiles}</version>
  <scope>compile</scope>
</dependency>

您可以在以下链接中阅读更多相关信息:

https://struts.apache.org/docs/tiles-3-plugin.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 2013-02-05
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2014-08-26
    相关资源
    最近更新 更多