Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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 AjaxLink切换另一个AjaxLink的可见性_Java_Ajax_Wicket - Fatal编程技术网

Java AjaxLink切换另一个AjaxLink的可见性

Java AjaxLink切换另一个AjaxLink的可见性,java,ajax,wicket,Java,Ajax,Wicket,我有两个AjaxLink(都在同一个容器下),我想切换它们的可见性,这样如果单击了linkA,linkA,就会隐藏linkB,反之亦然 以下是我对linkA的实现: linkA= new AjaxLink<Void>( "linkA" ) { @Override public void onConfigure() { setVisible( showLinkA); linkB.se

我有两个AjaxLink(都在同一个容器下),我想切换它们的可见性,这样如果单击了
linkA
linkA
,就会隐藏
linkB
,反之亦然

以下是我对
linkA
的实现:

linkA= new AjaxLink<Void>( "linkA" )
    {
        @Override
        public void onConfigure()
        {
            setVisible( showLinkA);
            linkB.setVisible( showLinkB);
        }

        @Override
        public void onClick( AjaxRequestTarget target )
        {
            if ( condition_met )
            {
                setResponsePage( NextPage.class, getParameters() );
            }
            else
            {
                showLinkB= true;
                showLinkA= false;
                target.add( linkA, linkB);
            }
        }
    }; 
linkA=新的AjaxLink(“linkA”)
{
@凌驾
配置()中的公共无效
{
setVisible(showLinkA);
linkB.setVisible(showLinkB);
}
@凌驾
公共void onClick(AjaxRequestTarget目标)
{
如果(满足条件)
{
setResponsePage(NextPage.class,getParameters());
}
其他的
{
showLinkB=true;
showLinkA=false;
添加(链接A、链接B);
}
}
}; 

隐藏部分起作用,即当单击
linkB
时,
linkB
被隐藏。但是,当单击
linkA
时,
linkA
被隐藏,并且
linkB
不会恢复可见性。我遗漏了什么吗?

因为您使用了Ajax,并且隐藏和显示了需要在组件上使用的组件
setOutputMarkupPlaceholderTag(true)
。如果没有这一点,“show”将无法找到它们,您的JS日志中肯定有错误。

非常感谢!添加
setOutputMarkupPlaceholderTag(true)
对我有用!