Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改调用setResponsePage wicket时的按钮/链接图像_Java_Image_Apache_Button_Wicket - Fatal编程技术网

Java 更改调用setResponsePage wicket时的按钮/链接图像

Java 更改调用setResponsePage wicket时的按钮/链接图像,java,image,apache,button,wicket,Java,Image,Apache,Button,Wicket,所以我在wicket中有我的按钮,我想把他设置为两个图像中的一个,这取决于两个条件中的一个。在一种情况下,该按钮也应禁用 private static final Image rwImage = new Image("rewindButton", new ContextRelativeResource("/images/rw.png")); private static final Image rwImageGrey = new Image("rewindButton", new Context

所以我在wicket中有我的按钮,我想把他设置为两个图像中的一个,这取决于两个条件中的一个。在一种情况下,该按钮也应禁用

private static final Image rwImage = new Image("rewindButton", new ContextRelativeResource("/images/rw.png"));
private static final Image rwImageGrey = new Image("rewindButton", new ContextRelativeResource("/images/rw_grey.png"));



AjaxFallbackLink rewindButton = new AjaxFallbackLink("rw") {

        @Override
        public void onClick(AjaxRequestTarget target) {

            // Sets page parameter to 0, and sets response page with a given page parameter.
            setResponsePage(MessageStorePage.class, new PageParameters().add("currentPageParameter", 0));
            //After calling above, currentPage=0;

        }

    };
    // rewindButton.setOutputMarkupId(true);
    // rewindButton.setOutputMarkupPlaceholderTag(true);
    // Displays grayed out and disabled button if current page is the first one.
    if (currentPage <= 0) {
        rewindButton.add(rwImageGrey);
        rewindButton.setEnabled(false);
    } else
        // Displays button if current page is not the first one.
        rewindButton.add(rwImage);
    // Adds "first page" button
    add(rewindButton);
private static final Image rwImage=新图像(“倒带按钮”,new ContextRelativeResource(“/images/rw.png”);
私有静态最终图像rwmagegrey=新图像(“倒带按钮”,新上下文相对源(“/images/rw_grey.png”);
AjaxFallbackLink倒带按钮=新的AjaxFallbackLink(“rw”){
@凌驾
公共void onClick(AjaxRequestTarget目标){
//将页面参数设置为0,并使用给定的页面参数设置响应页面。
setResponsePage(MessageStorePage.class,new PageParameters().add(“currentPageParameter”,0));
//调用上述函数后,currentPage=0;
}
};
//倒带按钮。setOutputMarkupId(真);
//倒带按钮。setOutputMarkupPlaceholderTag(真);
//如果当前页是第一页,则显示灰显和禁用按钮。

如果(currentPage我认为存在缓存问题,因为您用不同的图像替换相同的图像(相同的id和全部),wicket或您的浏览器没有意识到它实际上是不同的。您应该看看生成的html是如何不同的

我认为显式禁用图像缓存可能是使其工作的一种方法


另一个快速解决方案可能是将两个图像添加到链接中,并根据上下文使其中一个图像不可见。

好吧,我通过添加以下内容解决了这个问题:
   Well, I got rid of the issue by adding:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
到我的html文件


这可能是一个肮脏的解决方案,但很管用。

在单击重定向时使用ajax链接有什么特殊原因吗?也许这只是一个简单的例子,但如果没有,我宁愿在这种情况下使用普通的链接实现,例如
链接
书签页面链接
。没有,我需要它是ajaxore,这就是为什么它是这样的,但仍然将其更改为链接它不会解决我的问题-就我而言。我认为根据您的需要,您的用例有几种解决方案…这就是为什么我要问的原因。如果您不需要漂亮的URL,我宁愿让Wicket为我处理页面的状态,例如,有一个字段<代码>int currentPage=1;
在页面中并更改值
onClick
。如果您确实需要或希望将其作为URL参数传递,您的示例缺少将页面参数读取到
currentPage
的代码段,这可能是出错的地方。我需要setResponsePage重新加载整个页面,因为整个内容都取决于这个参数,您的意思是为什么我使用params而不是手动更改当前页面并设置没有参数的响应页面?另一个快速解决方案可能是将两个图像添加到链接中,并根据上下文使其中一个图像不可见。我创建了另一个wicket ID的附加按钮,因此没有一个是灰色的,另一个是正常的,我改变了它们的可见性,但它有时仍然显示灰色的图像,对于正常的(动作是正常的)反之亦然。请添加相关的代码示例。我怀疑存在一个错误,您忘记添加到ajaxrequest的链接,或者可见性被另一段代码重置,但如果不查看您的代码,我无法判断。-)我已经正确地完成了:)已找到部分解决方案tho:)