вызов удаленной команды с Javascript на странице JSF устанавливает нулевые значения [duplicate]

1

Я использую primefaces 6, я хочу вызвать пустую команду primefaces с Javascript, и я хочу передать ей параметры.

Код удаленной команды выглядит следующим образом:

<h:form>
    <p:remoteCommand name="dummyAction" 
                 actionListener="#{usedController.exec}"/>
</h:form>

Затем я попытался вызвать удаленную команду в панели аккордеона, как показано ниже.

<p:accordionPanel onTabClose="dummyAction([{name1:'value1', 
name2:'value2'}]); "

и я добавил этот метод в Managedbean

public void exec() {
     FacesContext context = FacesContext.getCurrentInstance();
        Map map = context.getExternalContext().getRequestParameterMap();
        String name1 = (String) map.get("name1");
        String name2 = (String) map.get("name2");
}

Я начал отладку, и я обнаружил, что значения строки name1 и name2 всегда равны нулю, так как карта не содержит его ключа, как я могу исправить это, чтобы я мог получить правильные значения?

  • 0
    Извините, но они работали с использованием простых лиц 3, а не 6, не найден ответ на ту же проблему на простых лицах 6
Теги:
jsf
primefaces

1 ответ

0

Вы не правильно передаете параметры:

<p:accordionPanel onTabClose="dummyAction([{name1:'value1', name2:'value2'}]); "

Так должно быть:

<p:accordionPanel onTabClose="dummyAction([{'name':'name1', 
'value':'name1Value'},{'name':'name2','value':'name2value'}]); "

Вы должны быть уверены, что имена атрибутов ВСЕГДА "имя" и "значение". Например, если вы передаете один параметр, он должен быть:

[{'name':yourParamName, 'value': yourParamterValue}]

Если вы передаете два параметра, это должно быть:

[
 {'name':yourFirstParamName, 'value': yourFirstParamterValue}, 
 {'name':yourSecondParamName, 'value': yourSecondParamterValue}
]

Удачи!

  • 0
    Как упомянуто во втором «реальном» дубликате в комментариях выше
  • 0
    Кукельтье, я не думаю, что предыдущие ответы четко касались этого объяснения, представленного в этом ответе.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню