JSF / AJAX动态菜单 - 404问题

时间:2013-06-27 13:53:39

标签: ajax jsf http-status-code-404

我正在尝试创建一个动态菜单,以便在第一个选择器中选择某些内容时,根据第一个选择器中的选择从数据库中填充第二个选项卡。这是.xhtml:

<f:view>
        <h:form>
    <h:selectOneMenu id="seasonSelector" value ="#{selector_bean.season}">
       <f:ajax event="valueChange" listener="#{selector_bean.genEvents}" 
             execute="seasonSelector" render="eventSelector" />
        <f:selectItems   value ="#{selector_bean.seasons}" var ="s"
                       itemLabel="#{s.getRange()}"
                       itemValue="#{s}"></f:selectItems>    
    </h:selectOneMenu>


    <h:selectOneMenu id="eventSelector">
        <f:selectItems   value ="#{selector_bean.events}" var ="e"
                       itemLabel="#{e.event_Name}"
                       itemValue="#{e}"></f:selectItems>    
    </h:selectOneMenu>
        </h:form>
    </f:view>

这是豆子:

@ManagedBean(name = "selector_bean")
@Stateless
public class selector_bean implements Serializable{
    @EJB
    SeasonFacade sf;
    @EJB
    EventFacade ef;
    @EJB
    WrestlerFacade wf;

    private Season season;
    private Event event;
    private List<Event> events;
    private Match match;
    private Wrestler wrestler;

    public List<Season> getSeasons(){
        return sf.findAll();
    }

    public void genEvents(AjaxBehaviorEvent event){
        events = (ef.findBySeason(season));
    }

// setters and getters after this

当我更改第一个selectOneMenu的值时,会出现一个弹出框,显示以下消息:

httpError: There was an error communicating with the server, status: 404

我是JSF和AJAX的新手,所以如果我做错了,请随意撕开我。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您的@ManagedBean表现为具有@Stateless注释的EJB。删除它,而是将bean的范围设置为@ViewScoped

@ManagedBean(name = "selectorBean")
@ViewScoped
public class SelectorBean implements Serializable{
    //your implementation...
}

另外,请务必遵循JavaBean naming conventions。我已经将你的班级名称改为以大写字母开头。