gpt4 book ai didi

java - 从 WicketPanel 传递页面参数

转载 作者:行者123 更新时间:2023-12-01 13:28:04 25 4
gpt4 key购买 nike

如何在 Wicketpanel 上使用 PageParameters?我愿意从 WicketPanel 上的文件系统加载图像,并且我找到了相关教程,但他们使用的是页面,就我而言,我想将图像安装在面板上。我应该在这个类中更改什么,或者我是否必须为此用例实现 PageClass? http://wicketinaction.com/2011/07/wicket-1-5-mounting-resources/ https://github.com/martin-g/blogs/blob/master/request-mappers/src/main/java/com/wicketinaction/requestmappers/resources/images/ImageResourcesPage.java

public class ImageResourcesPage extends WebPage {

/**
* The image names for which dynamic images will be generated
*/
private static final String[] IMAGE_NAMES = new String[] {"one", "two", "three"};

public ImageResourcesPage(final PageParameters parameters) {
super(parameters);

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

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

@Override
protected void populateItem(ListItem<String> item) {
String imageName = item.getModelObject();
imageParameters.set("name", imageName);

// 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);
}

}

谢谢

最佳答案

显示的示例代码实际上并未使用 pageParameters来自WebPage在图像处理中根本没有,但有一个额外的 PageParameters imageParameters图像字段。您没有理由不能在Panel中做同样的事情。 .

类似的东西

public class ImageResourcesPanel extends Panel {

/**
* The image names for which dynamic images will be generated
*/
private static final String[] IMAGE_NAMES = new String[] {"one", "two", "three"};

public ImageResourcesPanel(final String wicketId) {
super(wicketId);

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

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

@Override
protected void populateItem(ListItem<String> item) {
String imageName = item.getModelObject();
imageParameters.set("name", imageName);

// 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);
}

}

应该与显示的页面版本一样工作。

我不确定 imageParameters 的最终字段和imageResourceReference虽然是合适的。我可能只是将它们设置为 populateItem(ListItem<String> item) 中的局部变量方法。

根据评论更新:

看来这个示例生成了图像链接,而您想要的是嵌入图像。更好的起点可能是 images example在 wicket-library 示例页面中。这 ImageResourceReference不过,此示例中的代码与其他示例结合使用可能仍然有用。

关于java - 从 WicketPanel 传递页面参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21698781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com