1

フォーム スニペット:

<h:selectOneMenu id="supervisor" value="#{newTopic.supervisor}">
                <s:objectConverter/>
                <f:selectItems value="#{supervisors}" var="_supervisor"
                               itemValue="#{_supervisor}"
                               itemLabel="#{_supervisor.name.firstName} #{_supervisor.name.lastName}"></f:selectItems>   
</h:selectOneMenu>
<h:commandButton action="#{newTopicAction.createTopic}" value="Create topic"/>

コントローラーのアクション:

@Model
public class NewTopicAction implements Serializable{
    @Inject
    private TopicManager topicManager;

    private ThesisTopic newTopic;

    public String createTopic(){
        topicManager.createTopic(newTopic);
        return "topics?faces-redirect=true";
    }

    @PostConstruct
    public void init(){
        newTopic = new ThesisTopic();
    }

    @Produces
    @Model
    public ThesisTopic getNewTopic(){
        return newTopic;
    }
}

newTopicAction.createTopic が呼び出されたときに、選択したスーパーバイザーが newTopic.supervisor に入力されないのはなぜですか? このフィールドを除いて、他のすべてのフィールドは期待どおりに機能します。私が正しく理解していないのはselectOneMenuに関するものかもしれません。

4

0 に答える 0