У меня есть данные, загруженные из БД, когда я нажимаю командную кнопку:
<h:commandButton value="Show article content and comments" action="#{dataBean.activateArticleContentView}" actionListener="#{dataBean.loadCurrentArticle}">
<f:attribute name="articleId" value="#{article.id}"></f:attribute>
</h:commandButton>
@ManagedBean
@ViewScoped
public class DataBean implements Serializable {
...
private List<UserAcc> users;
private List<Article> articles;
private List<ArticleComment> articleComments;
private Article currentArticle;
public void loadComments(ActionEvent e) {
DataBaseUtil dbu = new DataBaseUtil();
int articleId = (Integer) e.getComponent().getAttributes()
.get("articleId");
articleComments = dbu.loadArticleComments(articleId);
}
public void loadCurrentArticle(ActionEvent e) {
DataBaseUtil dbu = new DataBaseUtil();
int articleId = (Integer) e.getComponent().getAttributes()
.get("articleId");
this.currentArticle = dbu.loadArticleById(articleId);
this.currentArticle.setComments(dbu.loadArticleComments(articleId));
}
...
загружает статью и ее комментарии.Также textArea и commandButton отображаются на той же странице для добавления комментария.
<h:inputTextarea value="#{persistenceBean.text}" style="height: 50px; width: 300px">
</h:inputTextarea>
<h:commandButton value="Save" actionListener="#{persistenceBean.saveComment}">
<f:attribute name="userName" value="#{loginBean.name}"></f:attribute>
<f:attribute name="articleId" value="#{dataBean.currentArticle.id}"></f:attribute>
</h:commandButton>
Командная кнопка активирует этот метод в другом компоненте (PersistenceBean):
public void saveComment(ActionEvent e){
int articleId = (Integer) e.getComponent().getAttributes().get("articleId");
String userName = (String) e.getComponent().getAttributes().get("userName");
DataBaseUtil dbu = new DataBaseUtil();
UserAcc user = dbu.loadUserByName(userName);
ArticleComment comment = new ArticleComment();
comment.setText(this.text);
Date postat = new Date();
comment.setPostat(postat.toString());
dbu.saveComment(articleId, user.getId(), comment);
}
MyВопрос заключается в том, как изменить визуализацию таблицы с комментариями, чтобы изменения могли быть показаны немедленно.Теперь мне нужно вернуться к представлению статей и нажать кнопку, которая показывает содержание статьи и комментарии.Могу ли я иметь более одного прослушивателя действий для кнопки, которая добавляет комментарий, другими словами, как использовать dataBean.loadCurrentArticle
еще раз после добавления комментария.