我有一个带表单的对话框。表单包含一些由一些枚举类型组成的无线电选择。对话框打开后,只显示一个圆圈。我期待三个带有枚举名称的圈子。我的代码中的错误是什么?
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>
答案 0 :(得分:0)
请参阅RadioChoice的javadoc:它为每个选项呈现一个<input>
标记,因此它不能单独使用<input>
标记。
您的标记会产生以下输出:
<input>
<input type="radio" />
<input type="radio" />
<input type="radio" />
</input>
Wicket没有任何问题,但肯定不是您的浏览器会接受的内容。
答案 1 :(得分:0)
RadioChoice生成&#39;输入&#39; html中的标签。因此,您不应在输入标签中分配它,而应在span或div中分配。
将您的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>