Java 如何在wicket中单击三个div时显示不同的图像?
我对ApacheWicket不熟悉。我需要在wicket中显示div的默认图像。单击图像左侧时,我想将其替换为其他图像,单击右侧时,我想将其替换为其他图像 为此,我提出了以下html和java代码:Java 如何在wicket中单击三个div时显示不同的图像?,java,html,wicket,Java,Html,Wicket,我对ApacheWicket不熟悉。我需要在wicket中显示div的默认图像。单击图像左侧时,我想将其替换为其他图像,单击右侧时,我想将其替换为其他图像 为此,我提出了以下html和java代码: <html> <head> <title>Wicket Hello World</title> <style> #linkDecisionContainer.left{ backgro
<html>
<head>
<title>Wicket Hello World</title>
<style>
#linkDecisionContainer.left{
background-image: url("Desert.jpg");
}
#linkDecisionContainer.default{
background-image: url("Koala.jpg");
}
#linkDecisionContainer.right{
background-image: url("Penguins.jpg");
}
</style>
</head>
<body>
<div wicket:id ="linkDecisionContainer">
<a wicket:id="leftChoice"></a>
<a wicket:id="defaultChoice"></a>
<a wicket:id="rightChoice"></a>
</div>
</body>
</html>
维克特你好,世界
#linkDecisionContainer.left{
背景图片:url(“Desert.jpg”);
}
#linkDecisionContainer.default{
背景图片:url(“Koala.jpg”);
}
#linkDecisionContainer.right{
背景图片:url(“Penguins.jpg”);
}
我尝试将默认类添加到WebMarkupContainer,并在click事件中相应地添加了左类和右类
public class Hello extends WebPage {
private static final long serialVersionUID = 1L;
WebMarkupContainer ldc=new WebMarkupContainer("linkDecisionContainer");
private AjaxLink left;
private AjaxLink right;
public Hello() {
super();
ldc.add(new AttributeModifier("class", true, new Model<String>("default")));
left = new AjaxLink("leftChoice") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
switchView("left");
target.addComponent(right);
}
};
right = new AjaxLink("rightChoice") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
switchView("right");
target.addComponent(right);
}
};
add(left);
add(right);
}
private void switchView(String viewName) {
if (viewName.equals("left")) {
ldc.add(new AttributeModifier("class", true, new Model<String>("left")));
}
else if (viewName.equals("right")) {
ldc.add(new AttributeModifier("class", true, new Model<String>("right")));
}
}
}
公共类Hello扩展网页{
私有静态最终长serialVersionUID=1L;
WebMarkupContainer ldc=新的WebMarkupContainer(“linkDecisionContainer”);
私人AjaxLink左;
私人AjaxLink权利;
公众你好{
超级();
ldc.add(新属性修改器(“类”),true,新模型(“默认”);
左=新AjaxLink(“左选择”){
私有静态最终长serialVersionUID=1L;
@凌驾
公共void onClick(AjaxRequestTarget目标){
开关视图(“左”);
target.addComponent(右);
}
};
右=新AjaxLink(“右选择”){
私有静态最终长serialVersionUID=1L;
@凌驾
公共void onClick(AjaxRequestTarget目标){
switchView(“右”);
target.addComponent(右);
}
};
添加(左);
加(右);
}
私有void开关视图(字符串视图名称){
if(viewName.equals(“左”)){
ldc.add(新属性修改器(“类”),true,新模型(“左”);
}
else if(viewName.equals(“right”)){
ldc.add(新属性修改器(“类”),true,新模型(“右”);
}
}
}
有谁能指导我实现它吗?从您提供的代码来看,您似乎没有刷新“linkDecisionContainer”。此外,您不应该添加越来越多的
AttributeModifier
类,而应该只更改基础模型的值。添加另一个属性修改器不会替换属性修改器。因此,您依赖于行为的实现来确定哪一个修改器成功
private IModel<String> ldcClassModel;
public Hello() {
super();
ldcClassModel = Model.of("default");
final WebMarkupContainer ldc = new WebMarkupContainer("linkDecisionContainer");
add(ldc);
ldc.setOutputMarkupId(true);
ldc.add(new AttributeModifier("class", ldcClassModel));
AjaxLink left = new AjaxLink("leftChoice") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
ldcClassModel.setObject("left");
target.addComponent(ldc);
}
};
AjaxLink right = new AjaxLink("rightChoice") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
ldcClassModel.setObject("right");
target.addComponent(ldc);
}
};
add(left);
add(right);
}
私有IModel ldcClassModel;
公众你好{
超级();
ldcClassModel=Model.of(“默认”);
最终WebMarkupContainer ldc=新的WebMarkupContainer(“linkDecisionContainer”);
增加(最不发达国家);
ldc.setOutputMarkupId(真);
添加(新属性修改器(“类”,ldcClassModel));
AjaxLink left=新的AjaxLink(“leftChoice”){
私有静态最终长serialVersionUID=1L;
@凌驾
公共void onClick(AjaxRequestTarget目标){
ldcClassModel.setObject(“左”);
目标.增加组成部分(最不发达国家);
}
};
AjaxLink right=新的AjaxLink(“rightChoice”){
私有静态最终长serialVersionUID=1L;
@凌驾
公共void onClick(AjaxRequestTarget目标){
ldcClassModel.setObject(“右”);
目标.增加组成部分(最不发达国家);
}
};
添加(左);
加(右);
}