AJAX сложно сделать с JSF. Если используемая вами среда JSF не поддерживает ее, вы столкнетесь со многими проблемами состояния представления.
Я удивлен, что исключение не выдается при обращении к sub.jsp напрямую - не должно быть h: view в sub.jsp и без UIViewRoot Я не уверен, как будет создано дерево пользовательского интерфейса. Если у вас есть представление h: в sub.jsp , то вы помещаете два UIViewRoots в свое дерево пользовательского интерфейса - это ошибка. (Дерево компонентов JSF примерно аналогично дереву других наборов виджетов Java, таких как Swing или SWT.)
Я подозреваю, что проблема, которую вы наблюдаете, заключается в том, что вы отправляете представление, отличное от того, которое было изначально отображено. Поскольку дерево компонентов полностью отличается, clientIds будут генерироваться из другого корня представления. Вы можете прочитать о том, как они встроены в этот ответ .
Короче говоря, я не думаю, что механизм, который вы используете для обновления клиента, является действительным.