Java 语言下拉选择器

Java 语言下拉选择器,java,wicket,Java,Wicket,我希望能够根据我的网站支持的语言创建一个下拉选择框。我似乎在Wicket中找不到一个现成的组件。我怎样才能做到这一点呢?我还没有对此进行测试,但请尝试以下方法: private Locale chosenLocale; public LocalePage() { Form<Void> form = new Form<Void>( "form" ) { @Override protected void onSubmit() {

我希望能够根据我的网站支持的语言创建一个下拉选择框。我似乎在Wicket中找不到一个现成的组件。我怎样才能做到这一点呢?

我还没有对此进行测试,但请尝试以下方法:

private Locale chosenLocale;

public LocalePage() {
    Form<Void> form = new Form<Void>( "form" ) {
        @Override
        protected void onSubmit() {
            // do something with this.chosenLocale
            // perhaps getSession().setLocale(this.chosenLocale);
        }
    };
    List<Locale> locales = new ArrayList<Locale>(Arrays.asList( Locale.ENGLISH, Locale.FRENCH  ));
    DropDownChoice<Locale> choice = new DropDownChoice<Locale>( "locale", new PropertyModel<Locale>( this,
            "chosenLocale" ), locales, new IChoiceRenderer<Locale>() {

        @Override
        public Object getDisplayValue(Locale object) {
            return object.toString();
        }

        @Override
        public String getIdValue(Locale object, int index) {
            return String.valueOf( index );
        }

    } );

    add( form.add( choice.setNullValid( false ) ) );
}
私有语言环境chosenLocale;
公共LocalePage(){
表格=新表格(“表格”){
@凌驾
受保护的void onSubmit(){
//用这个做点什么。chosenLocale
//可能是getSession().setLocale(this.chosenLocale);
}
};
List locales=newarraylist(Arrays.asList(Locale.ENGLISH,Locale.FRENCH));
DropDownChoice=new DropDownChoice(“区域设置”),new PropertyModel(此,
“chosenLocale”),地点,新IChoiceRenderer(){
@凌驾
公共对象getDisplayValue(区域设置对象){
返回object.toString();
}
@凌驾
公共字符串getIdValue(区域设置对象,int索引){
返回字符串.valueOf(索引);
}
} );
add(form.add(choice.setNullValid(false));
}
使用如下标记:

<html>
<body>
    <form wicket:id="form">
        <select wicket:id="locale" />
        <input type="submit" />
    </form>
</body>
</html>

查看wicket库的贡献: