0

每次我尝试实现模态窗口时,我都会得到:

java.lang.ClassNotFoundException:org.apache.wicket.request.resource.CompressedResourceReference

我的图书馆都没有这个元素。我的依赖是:

    <dependency>
        <groupId>org.apache.wicket</groupId>
        <artifactId>wicket-core</artifactId>
        <version>1.5.3</version>
    </dependency>

    <!-- DatePicker -->
    <dependency>
        <groupId>org.apache.wicket</groupId>
        <artifactId>wicket-datetime</artifactId>
        <version>1.5.2</version>
    </dependency>


<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-extensions</artifactId>
<version>1.5.3</version>
 </dependency>

€ 这就是我实现模态窗口的方式:

 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.util.time.Duration;



public class ModalPanel1 extends WebPage
{
 public ModalPanel1(String id)
{
final ModalWindow modalWindow = new ModalWindow("modal");

modalWindow.setTitle("Popup");
modalWindow.setInitialWidth(400);
modalWindow.setInitialHeight(400);
modalWindow.setResizable(true);
modalWindow.setContent(new AbstractModalClosePanel(modalWindow)
{
  public void onClick(AjaxRequestTarget target)
  {
    modalWindow.close(target);
  }
});
add(modalWindow);

add(new AjaxLink<Void>("open")
{
  @Override
  public void onClick(AjaxRequestTarget target)
  {
    modalWindow.show(target);
  }
});

add(new AbstractAjaxTimerBehavior(Duration.seconds(2))
{
  @Override
  protected void onTimer(AjaxRequestTarget target)
  {
    modalWindow.show(target);
    stop();
  }
});
 }
 }

 import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
 import org.apache.wicket.markup.html.panel.Panel;


 public abstract class AbstractModalClosePanel extends Panel
 {
   public AbstractModalClosePanel(ModalWindow modalWindow)
   {
super(modalWindow.getContentId());



 }

没有旧的进口。

完整的堆栈跟踪

完整堆栈:org.apache.wicket.WicketRuntimeException:无法使用构造函数“public com.onespark.wicket.components.tasks.Tasks()”实例化页面。可能它不存在,可能它不可见(公开)。在 org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:196) 在 org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:68) 在 org.apache.wicket.session.DefaultPageFactory.newPage (DefaultPageFactory.java:47) 在 org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:103) 在 org.apache.wicket.request.handler.PageProvider.resolvePageInstance(PageProvider.java:264) 在 org.apache。 wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:165) 在 org.apache.wicket.request.handler.render.PageRenderer。

4

1 回答 1

1

CompressedResourceReference与其他压缩内容一起在 Wicket 1.5 中被删除。

如果您在自己的代码中有对此的引用,您应该只使用普通ResourceReference或其他非压缩版本。

在早期版本中,它被用于ModalWindow,但至少在 1.5.3 中没有,所以

<dependency>
    <groupId>org.apache.wicket</groupId>
    <artifactId>wicket-extensions</artifactId>
    <version>1.5.3</version>
</dependency>

应该工作。

我会再试一次,并确保你有一个干净的更新,所以没有对旧ModalWindow代码的引用。

候选版本中可能仍然有引用,因为我认为在某些候选版本中它仍然在 wicket-core 中。

您可能还想查看更多堆栈跟踪以缩小对此类的引用的范围。

于 2012-01-20T12:29:38.670 回答