a4j: поддержка onChange событие не срабатывает
Я пытаюсь повторно открыть второй выпадающий список, когда изменяю значение в первом. Но ничего не происходит, когда я нажимаю и изменяю значение в первом выпадающем списке. Я пропустил какую-нибудь важную часть?
Мой xhtml:
<h:form>
<h:selectOneMenu value="#{adminBean.currentLeadCategory}" required="true" styleClass="formfield fpgeo" style="width:20em;margin-right:20px;">
<a4j:support event="onchange" action="#{adminBean.currentLeadCategoryChanged()}"
reRender="componentToReRender"/>
<s:selectItems value="#{leadCategories}" var="leadCategory" label="#{leadCategory.name}" noSelectionLabel="Choose Category"/>
<s:convertEntity/>
</h:selectOneMenu>
<a4j:outputPanel id="componentToReRenderWrapper">
<h:selectOneMenu id="componentToReRender" value="#{adminBean.currentCounty}"
styleClass="formfield fpgeo" style="width:20em;margin-right:20px;">
<s:selectItems value="#{adminBean.counties}" var="county" label="#{county.name}" noSelectionLabel="choose"/>
<s:convertEntity/>
</h:selectOneMenu>
<h:messages/>
</a4j:outputPanel>
</h:form>
Мой Боб:
@AutoCreate
@Scope(ScopeType.CONVERSATION)
@Name("adminBean")
@MeasureCalls
@Restrict("#{s:hasRole('admin') or s:hasRole('sales')}")
public class AdminBean implements Serializable {
private LeadCategory currentLeadCategory;
private List<County> counties = new ArrayList<County>();
private County currentCounty;
@Factory(value = "leadCategories", autoCreate = true, scope = ScopeType.SESSION)
public List<LeadCategory> fetchLeadCategories() {
Query query = entityManager.createQuery("select l from LeadCategory l");
return query.getResultList();
}
public LeadCategory getCurrentLeadCategory() {
return currentLeadCategory;
}
public void setCurrentLeadCategory(LeadCategory currentLeadCategory) {
this.currentLeadCategory = currentLeadCategory;
}
public County getCurrentCounty() {
return currentCounty;
}
public void setCurrentCounty(County currentCounty) {
this.currentCounty = currentCounty;
}
public void currentLeadCategoryChanged() {
this.loadCountiesForCategory();
}
public List<County> getCounties() {
return counties;
}
public void setCounties(List<County> counties) {
this.counties = counties;
}
public void loadCountiesForCategory(){
if(currentLeadCategory == null){
counties = new ArrayList<County>();
}
counties = new ArrayList<County>(currentLeadCategory.getCounties());
}
}
Правка 1:
Если я проверяю firebug, я получаю ошибку:
Отметка времени: 19.07.12 4: 14: 44 вечера
Ошибка: ReferenceError: A4J не определен
Исходный Файл: http://localhost:8080/admin/admin.seam?cid=11
Строка: 1
2 ответа:
ОК нашел проблему! Здесь творится настоящее безумие. Кто-то установил LoadScriptStrategy парам никому в сети.XML. Это делает его рамкой.упаковка.js и ui.упаковка.js-этоНе загрузка.
<context-param> <param-name>org.richfaces.LoadScriptStrategy</param-name> <param-value>NONE</param-value> </context-param>
Нашел эту страницу в docs.jboss
Если вы используете стратегию "нет", вы должны включить следующие сценарии в заголовке страницы портлета или портала. Если вы используете портал JBoss, вы можете добавить это в JBoss-портлет.XML-файл.
Добавлено
<a4j:loadScript src="resource:///org/ajax4jsf/framework.pack.js"/>
для моего шаблона заголовка и Виолы все работает как шарм.Я люблю свою работу =)