java - AjaxLink 的 Wicket AttributeModifier

标签 java wicket

在 Wicket 口中,AttributeModifier 不会更改 AjaxLink 的属性“class”。它应该更改类属性并更改链接的外观。

public class TestPage extends WebPage {
    private AjaxLink link1;
    private AjaxLink link2;

    public TestPage() {
        super();

        link1 = new AjaxLink("link1") {
            private static final long serialVersionUID = 1L;

            @Override
            public void onClick(AjaxRequestTarget target) {
                switchView("view1");
            }
        };

        link2 = new AjaxLink("link2") {
            private static final long serialVersionUID = 1L;

            @Override
            public void onClick(AjaxRequestTarget target) {
                switchView("view2");
            }
        };

        link1.setOutputMarkupId(true);
        link2.setOutputMarkupId(true);

        link1.add(new AttributeModifier("class", true, new Model<String>("active")));
        link2.add(new AttributeModifier("class", true, new Model<String>("inactive")));

        add(link1);
        add(link2);
    }

    private void switchView(String viewName) {
        if (viewName.equals("view1")) {
            link1.add(new AttributeModifier("class", true, new Model<String>("active")));
            link2.add(new AttributeModifier("class", true, new Model<String>("inactive")));
        } else if (viewName.equals("view2")) {
            link1.add(new AttributeModifier("class", true, new Model<String>("inactive")));
            link2.add(new AttributeModifier("class", true, new Model<String>("active")));
        }
    }
}

相应的 html 文件如下所示:

<html xmlns:wicket>
<body>
<wicket:extend>
 <div id="tabs">
 <ul>
  <li><a wicket:id="link1">View1</a></li>
  <li><a wicket:id="link2">View2</a></li>
 </ul>
 </div>
</wicket:extend>
</body>
</html>

谢谢

最佳答案

您实际上并没有告诉 wicket 在 ajax 响应中执行任何操作。

一个可能的解决方法是添加以下行:

target.addComponent(link1);
target.addComponent(link2);

(或调用执行此操作的函数)到您的两个 onClick 方法。

关于java - AjaxLink 的 Wicket AttributeModifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3608403/

相关文章:

java - 尝试显示字节值时 setText 使应用程序崩溃

java - finally 子句中的信号量操作

javascript - jquery 不继续到下一页

java - 我如何在 Wicket 1.5 中模仿 HybridUrlCodingStrategy?

java - 在 `n` 和 `java.util.PriorityQueue` 中插入 `initialCapacity=n` 元素的时间复杂度

java - 从java字符串中删除所有 "<...>"

java - 数组在代码的一部分中省略行,但在另一部分中显示它

java - wicket 1.5 新网址

spring - wicket spring hibernate 入门

javascript - Wicket 口和 JavaScript : any way for Wicket to get notified of an updated text?