Wicket JQuery AbstractFormDialog 不呈现枚举的 RadioChoice
Wicket JQuery AbstractFormDialog does not render RadioChoice of Enumeration
我有一个带有表单的对话框。该表单包含一个由一些枚举类型组成的单选选项。当对话框打开时,只会显示一个圆圈。我期待三个带有枚举名称的圆圈。我的代码有什么错误?
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 的 javadoc:它为每个选项呈现一个 <input>
标签,因此它不能单独使用 <input>
标签。
您的标记产生以下输出:
<input>
<input type="radio" />
<input type="radio" />
<input type="radio" />
</input>
Wicket 没有问题,但您的浏览器肯定不会接受。
RadioChoice 在html.For 中生成'input' 个标签,因此,您不应将其分配在输入标签中,而应分配在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>
我有一个带有表单的对话框。该表单包含一个由一些枚举类型组成的单选选项。当对话框打开时,只会显示一个圆圈。我期待三个带有枚举名称的圆圈。我的代码有什么错误?
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 的 javadoc:它为每个选项呈现一个 <input>
标签,因此它不能单独使用 <input>
标签。
您的标记产生以下输出:
<input>
<input type="radio" />
<input type="radio" />
<input type="radio" />
</input>
Wicket 没有问题,但您的浏览器肯定不会接受。
RadioChoice 在html.For 中生成'input' 个标签,因此,您不应将其分配在输入标签中,而应分配在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>