2013-03-31 8 views
0

ниже вы видите часть моего кода, я просто хочу выбрать первое значение в форме, а остальное должно быть обновлено через ajax, например, если вы выберете PK, чем MccName, MccVorname, MccDepartment должен быть показан через ajax после этого выбора. Это также должно быть возможно и в других формах независимо обозначает,Ajax не всегда работает

<h:panelGrid columns="4"> 
    <h:form id="formmcc10"> 
     <h:outputText value="Pls select PK: " /> 
     <p:selectOneMenu value="#categorymcc.mcccatname}" id="mcccat" 
      immediate="true" valueChangeListener="#categorymcc.processScat}"> 
      <f:selectItem itemLabel="#categorymcc.mcccatname}"itemValue="" /> 
      <f:selectItems value="#categorymcc.categoryName}" /> 
      <p:ajax update="formmcc10:mccscat1 formmcc10:mccscat2 formmcc10:mccscat3" event="change" /> 
     </p:selectOneMenu><h:outputText value="Mcc Name" /> 
     <p:selectOneMenu value="#{categorymcc.submcccatname}"id="mccscat1"> 
      <f:selectItemsvalue="#{categorymcc.subCategoryName}" /> 
     </p:selectOneMenu> 
     <h:outputText value="Mcc Vorname" /> 
     <p:selectOneMenu value="#{categorymcc.subsubmcccatname}"id="mccscat2"> 
      <f:selectItems value="#{categorymcc.subSubCategoryName}" /> 
     </p:selectOneMenu> 
     <h:outputText value="Mcc Department:" /> 
     <p:selectOneMenu value="#{categorymcc.abteilung}" id="mccscat3"> 
      <f:selectItems value="#{categorymcc.abteilungCategoryName}" /> 
     </p:selectOneMenu> 
    </h:form> 
</h:panelGrid> 
+0

Проблема может заключаться в определении управляемого объекта (и исправлении опечаток в текущем коде, например '# categorymcc.categoryName}', в котором отсутствует открывающая скобка '{'). Убедитесь, что ваш управляемый bean-компонент является '@ManagedBean @ ViewScoped' или если вы используете CDI, тогда' @Named @ SessionScoped' –

ответ

0

Это может быть что угодно, но я столкнулся с одной интересной проблемой, как, что в последнее время. Я попытался вывести свойство bean как #{myBean.otherBean.name}, и он работал, когда я загрузил страницу обычным запросом, но не работал с AJAX. Когда я попробовал #{myBean.otherBean.id}, он работал в обоих случаях.

Проблема была в том, что бэкэнд-система не заполнила все данные для otherBean по запросу AJAX, она заполнила только идентификатор (вероятно, для лучшей производительности). Мне пришлось подготовить метод getOtherBeanById, и, когда я его назвал, AJAX начал работать как ожидалось.

Я не эксперт в этой области, возможно, у кого-то есть более точное объяснение этого.

+0

отсутствующих скобок '{' - проблема передачи меня. В исходном коде они присутствуют. Изменен весь Bean на @ViewScoped, кроме dateBean. После этого страница выглядит более страшной, вы не можете выбрать mccPk, и после первого отвала не будет никакой реакции, не возможно ajax. –

Смежные вопросы