JSF Пользовательский компонент, расширяющий Primefaces SelectOneMenu - PullRequest
0 голосов
/ 21 октября 2018

Мне нужно создать пользовательский компонент, который либо расширяет, либо включает Primefaces SelectOneMenu.Это сделано для того, чтобы я мог доставить выбранные элементы на основе поля (на данный момент они жестко закодированы в приведенном ниже примере, и тег правильно зарегистрирован).

Компонент отображается, и выбранные элементы также отображаются нормально.Однако, когда я сохраняю, поле записи не обновляется со значением выбранного элемента.Есть ли какой-нибудь простой метод, который я должен переопределить, чтобы на самом деле установить значение?Я едва мог найти что-либо.Заранее спасибо

@FacesComponent(value = ComponentRegistry.INPUT_SELECTDROPDOWN_COMPONENT_TYPE)
public class InputSelectDropdown extends SelectOneMenu {

    @Override
    public void encodeBegin(FacesContext context) throws IOException {

        this.setValueExpression("value", this.getValueExpression("value"));

        UISelectItem select1    =   new UISelectItem();
        select1.setItemLabel("item 1");
        select1.setItemValue("item1");
        select1.encodeAll(context);
        this.getChildren().add(select1);

        UISelectItem select2    =   new UISelectItem();
        select2.setItemLabel("item 2");
        select2.setItemValue("item2");
        select2.encodeAll(context);
        this.getChildren().add(select2);        

        super.encodeBegin(context);
    }    
}
...