0

modalwindow を実装しようとするたびに、次のようになります。

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. wikit.request.handler.PageProvider.getPageInstance(PageProvider.java:165) at org.apache.wicket.request.handler.render.PageRenderer.

4

1 に答える 1

1

CompressedResourceReferenceWicket 1.5 では、他の圧縮機能とともに削除されました。

独自のコードでこれへの参照がある場合は、通常ResourceReferenceのバージョンまたは他の非圧縮バージョンを使用する必要があります。

以前のバージョンでは で使用されてModalWindowいましたが、少なくとも 1.5​​.3 では使用されていないため、

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

働くべきだった。

もう一度試して、古いModalWindowコードへの参照がぶらぶらしていないように、クリーンな更新があることを確認してください。

一部のリリース候補ではまだウィケットコアにあったと思うので、リリース候補にはまだ参照があった可能性があります。

このクラスへの参照がどこにあるかを絞り込むために、スタック トレースをさらに確認することもできます。

于 2012-01-20T12:29:38.670 に答える