0

在将我们的应用程序从 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));
    }
}
4

1 回答 1

0

I have never worked with Apache Tile, but since the error is:

package org.apache.tiles.request does not exist

And since it happened after the update you mentioned. It seems to me you should add a new version for org.apache.tiles.request.

If you are using maven to build your app, you should change in the pom.xml the depency to this one:

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

You can read more about this in the following link:

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

于 2017-08-15T10:23:07.787 回答