2014-02-20 64 views
0

我試圖在我的頁面上掛載一個ImageResourceReference,但多次掛載ExternalLink(每次我重新加載頁面,我都會得到一個新的附加鏈接(同一個) 例如,當我第一次啓動服務器並加載頁面時,只有一個ExternalLink,第二次,兩個鏈接,第三次三等...Wicket ImageResourceReference ist每次頁面重新加載多次安裝

可能是什麼原因?

這裏是我的代碼: WebApp.java:

void init() { 
..... 
mountResource("/book/number/${number}/images/ray/${name}", new ImageResourceReference()); 
.... 
} 

ImageResourcesPanel:

public class ImageResourcesPanel extends Panel { 

    private static final long serialVersionUID = -8723530004274531683L; 
    private static Logger logger = LoggerFactory.getLogger(ImageResourcesPanel.class 
      .getName()); 

    /** 
    * The image names for which dynamic images will be generated 
    */ 
    private static List<String> IMAGE_NAMES = new ArrayList<String>(); 


    public ImageResourcesPanel(final String wicketId, final IModel<Device> model) { 
     super(wicketId, model); 

     String pathToImage = "images"; 
     IMAGE_NAMES.add(pathToImage); 

     ListView<String> listView = new ListView<String>("list", IMAGE_NAMES) { 

      private static final long serialVersionUID = 1L; 

      @Override 
      protected void populateItem(ListItem<String> item) { 

       logger.debug("Executed!"); 

       ResourceReference imagesResourceReference = new ImageResourceReference(); 
       PageParameters imageParameters = new PageParameters(); 


       int number = model.getObject().getNumber(); 
       String imageName = item.getModelObject(); 
       String folder = model.getObject().getLinkToFolder(); 
       imageParameters.set("name", imageName); 
       imageParameters.set("number", number); 
       imageParameters.set("folder", folder); 

       // generates nice looking url (the mounted one) to the current image 
       CharSequence urlForWordAsImage = getRequestCycle().urlFor(imagesResourceReference, imageParameters); 
       ExternalLink link = new ExternalLink("link", urlForWordAsImage.toString()); 
       link.setBody(Model.of(imageName)); 
       item.add(link); 

      } 
     }; 
     add(listView); 
    } 
} 
+0

我不明白這個問題。請提供:面板標記,生成錯誤的html,所需的html。 – bernie

+0

嗨,我使用了類似的代碼,當頁面加載時,我得到以下異常。 WicketObjects:無法解析類[未定義] 拋出java.lang.ClassNotFoundException:未定義 \t在org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1509) \t在org.glassfish.web.loader.WebappClassLoader .loadClass(WebappClassLoader.java:1359) \t at java.lang.Class.forName0(Native Method) \t at java.lang.Class.forName(Class.java:247) – Jay

回答

0

明白了!

我只是在頁面上安裝圖像後使ListView爲空。添加鏈接到ListView項後,我只是添加了一行代碼:

`IMAGE_NAMES.remove(pathToImage);` 
相關問題