#ajax #jsf #jsf-2 #ajax4jsf
#ajax #jsf #jsf-2 #ajax4jsf
Вопрос:
Я создаю компоненты JSF в фоновом режиме. Кроме того, добавлена поддержка ajax с использованием AjaxBehavior.
AjaxBehavior a4jSupport = (AjaxBehavior) app.createBehavior(AjaxBehavior.BEHAVIOR_ID);
List<String> updateIds = getUpdateIds();
if (updateIds !=null){
a4jSupport.setRender(updateIds);
((UIComponentBase) component).addClientBehavior("change", a4jSupport);
}
Идея состоит в том, чтобы добавить повторный рендеринг набора компонентов при изменении значения для определенного входного компонента. Я сталкиваюсь с проблемой, когда какой-либо идентификатор обновления недействителен. Он выдает Javax.faces.Исключение FacesException, в котором упоминается, что конкретный идентификатор недействителен.
Нужно знать, есть ли какой-либо способ игнорировать недопустимые идентификаторы, а не создавать исключения?
Комментарии:
1. Я думаю, что основная цель исключения — перехватить его и обработать неожиданный результат, другими словами, когда вы его поймаете, вы можете его игнорировать.
2. Это основная проблема здесь… Это происходит во время рендеринга пользовательского интерфейса. Я не слишком уверен в том, как перехватить это, поскольку на стороне сервера все выполняется просто отлично. Это исключение возникает только тогда, когда компонент отображается в пользовательском интерфейсе.
3. Просто чтобы добавить к приведенному выше комментарию, я думаю, что это нужно обработать на этапе RenderResponse, но не слишком уверен в том, как правильно с этим справиться.