最初のセレクターで何かが選択されたときに、最初のセレクターでの選択に基づいてデータベースから 2 番目のセレクターが読み込まれるように、動的メニューを作成しようとしています。.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 の両方に慣れていないので、間違っている場合は遠慮なくバラバラにしてください。助けてくれてありがとう!