gpt4 book ai didi

jsf - 如何将 selectManyCheckbox 中选择的数据存储到不同的对象中?

转载 作者:行者123 更新时间:2023-12-01 09:04:32 25 4
gpt4 key购买 nike

在我看来,我使用 StudentModelBean 来存储表单中输入的数据。考虑一下我表单的这一部分:

<h:selectManyCheckbox value="#{}">
<f:selectItem itemLabel="English" itemValue="English" />
<f:selectItem itemLabel="Hindi" itemValue="Hindi" />
<f:selectItem itemLabel="Telugu" itemValue="Telugu" />
</h:selectManyCheckbox>

我的要求是我需要将每个选定的项目值存储到每个 Languages 对象的 languageName 属性中。最后,我需要将它们放入 List 对象中。我怎样才能做到这一点?

最佳答案

您需要提供整个 Language 对象作为可用项和选定项。您还需要创建一个 ConverterLanguage 对象和 String 之间进行转换,这是强制性的,因为 HTML 输出和 HTTP 请求参数是一个并且所有字符串

假设您的 Language 对象有两个属性 codename 并且您有一个应用程序范围的 bean,如下所示:

@ManagedBean
@ApplicationScoped
public class Data {

private List<Language> languages;

@PostConstruct
public void init() {
languages= new ArrayList<Language>();
languages.add(new Language("en", "English"));
languages.add(new Language("hi", "Hindi"));
languages.add(new Language("te", "Telugu"));
// ...
}

public List<Language> getLanguages() {
return languages;
}

}

那么你可以如下使用它:

<h:selectManyCheckbox value="#{bean.selectedLanguages}" converter="languageConverter">
<f:selectItems value="#{data.languages}" var="language"
itemValue="#{language}" itemLabel="#{language.name}" />
</h:selectManyCheckbox>

用这个 bean

@ManagedBean
@ViewScoped
public class Bean {

private List<Language> selectedLanguages;

// ...
}

还有这个转换器

@FacesConverter("languageConverter")
public class LanguageConverter implements Converter {

@Override
public String getAsString(FacesContext context, UIComponent component, Object object) {
return ((Language) object).getCode();
}

@Override
public Object getAsObject(FacesContext context, UIComponent component, String submittedValue) {
List<Language> languages = (List<Language>) context.getApplication().evaluateExpressionGet(context.getELContext(), "#{data.languages}", List.class);

for (Language language : languages) {
if (language.getCode().equals(submittedValue)) {
return language;
}
}

return null;
}

}

关于jsf - 如何将 selectManyCheckbox 中选择的数据存储到不同的对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10519708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com