gpt4 book ai didi

java - AjaxLink 的 Wicket AttributeModifier

转载 作者:行者123 更新时间:2023-12-02 05:01:31 26 4
gpt4 key购买 nike

在 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/

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