Wicket JQuery AbstractFormDialog不渲染枚举的RadioChoice
问题描述:
我有一个窗体对话框。该表单包含一个由一些枚举类型组成的无线电选择。当对话框打开时,只显示一个圆圈。我预计三个圆圈的枚举名称。我的代码中有什么错误?Wicket JQuery AbstractFormDialog不渲染枚举的RadioChoice
public class MyNewDialog extends AbstractFormDialog {
public MyNewDialog(String id) {
super(id, "Dialog title");
form = new Form("dialogForm");
this.add(form);
RadioChoice<Gender> genders = new RadioChoice<Gender>("list",
getGenderList(), new EnumChoiceRenderer<Gender>(this));
genders.setSuffix(" - ");
genders.setRequired(true);
form.add(genders);
}
private List<Gender> getGenderList() {
return Arrays.asList<Gender>(Gender.values());
}
//--- Enum class "Gender"
public enum Gender { MALE, FEMALE, FAMILY };
//--- The html markup in file "MyNewDialog.html"
<html xmlns:wicket="org.apache.wicket"><body><wicket:panel>
<form wicket:id="dialogForm">
<input wicket:id="list" type="radio" />
</form>
</wicket:panel></body></html>
答
RadioChoice在html中生成'输入'标记。因此,您不应该在输入标记中分配它,而应该在一个跨度或分隔中。
你的HTML标记的文件更改为:
//--- The html markup in file "MyNewDialog.html"
<html xmlns:wicket="org.apache.wicket"><body><wicket:panel>
<form wicket:id="dialogForm">
<span wicket:id="list" type="radio" />
</form>
</wicket:panel></body></html>
答
见RadioChoice的Javadoc:它使得每个选项一个<input>
标签,因此不能单独使用<input>
标签。
您的标记结果如下输出:
<input>
<input type="radio" />
<input type="radio" />
<input type="radio" />
</input>
没有什么问题的,检票,但肯定不是你的浏览器会接受。