2013-02-21 3 views
0

У меня есть простая проблема в JSF 2.0, и мне нужен совет, что лучше. Так, на моей странице .xhtml есть компонент, который имеет 2 значения: Да и НетЛогика значений в JSF

<h:outputLabel id=v1 value="#{someValue}"/> 
<f:selectItem itemValue="0" itemLabel="#{msg['label.no']}" /> 
<f:selectItem itemValue="1" itemLabel="#{msg['label.yes']}" /> 

То, что я пытаюсь сделать, это получить значение F по умолчанию: выбор на основании outputLabel. Например: если outputLabel получает значение: любительский, чем по умолчанию f: selectItem - «Yes», ​​иначе - «No» по умолчанию. Лучше ли с какой-то логикой в ​​бэкбоне или с помощью рендеринга на странице xhtml?

+0

Почему вы хотите это сделать? Это выглядит немного нетрадиционным. Если возможно, вы логично в бэкбоне. –

ответ

2

Вам необходимо установить его в свойстве за атрибутом входного компонента value. Вы не показали полный код, но если это, например, <h:selectOneRadio> как так

<h:outputLabel for="foo" value="#{bean.label}" /> 
<h:selectOneRadio id="foo" value="#{bean.value}"> 
    <f:selectItem itemValue="0" itemLabel="#{msg['label.no']}" /> 
    <f:selectItem itemValue="1" itemLabel="#{msg['label.yes']}" /> 
</h:selectOneRadio> 

, то вы должны быть устанавливающего #{bean.value} в (пост) конструкторе компонента. Полная картина неясна, поэтому здесь приведен пример базового запуска, а не подходящего решения:

private String label; 
private Integer value; 

@PostConstruct 
public void init() { 
    label = "Amateur"; 
    value = "Amateur".equals(label) ? 1 : 0; 
} 
Смежные вопросы