Использование DataModel<MyObject>
, я заполняю таблицу данных в соответствии с this responseJSF: Обновить страницу после того, как данные изменить
Теперь в конце каждой строки у меня есть кнопка удаления, которая вызывает определенный метод моего компонента. Данные будут удалены. Но по мере того, как данные были изменены после удаления, я бы хотел перезагрузить страницу, чтобы отразить изменения.
Моя попытка была добавить правило навигации в faces-config.xml
:
обзор /overview.jsp deletedsubscription /overview.jsp
Если у меня есть <redirect />
или нет, в любом случае он не перезагружает или вообще ничего не делает. Данные удаляются, поэтому на самом деле вызывается метод bean.
Моя кнопка выглядит следующим образом:
<h:dataTable border="1" value="#{overviewBean.overviewModel }" var="item" first="0">
<h:column id="column13">
<f:facet name="header">
<h:outputText value="#{messages.overviewDeleteItem }"></h:outputText>
</f:facet>
<h:commandButton action="#{overviewBean.deleteItem}" value="X"/>
</h:column>
</h:dataTable>
Установка атрибута type="submit"
фактически решает эту проблему. Страницы загружаются.
Мой вопрос сейчас: действительно ли требуется подача? Не имеет ли JSF (Apache MyFaces) какой-либо механизм использования AJAX для устранения только что удаленной строки?
Спасибо за попытку помочь новичку JSF.
Еще один хороший ответ. Благодаря! Ну ... когда у меня был метод, возвращающий 'void', eclipse жаловался на это в JSP-редакторе ... Попробует еще раз. – Atmocreations
Eclipse - это рывок. Игнорируйте и запустите его. Эти ошибки/предупреждения настраиваются. В конце концов вы также можете просто вернуть «null». – BalusC
Eclipse is cool =) Это помогло мне со многими моментами в процессе жесткого обучения JSF. Но да, вы правы, иногда он жалуется на большее, чем нужно. Возможно, это зависит от реализации (Myfaces/Mojarra или как это называется). благодаря! – Atmocreations