我面临着基于其他组件的动作呈现或执行jsf组件的问题。
我试图做的是:在第一次加载页面时加载一些数据。所以我写了
<f:metadata>
<f:event listener="#{homeController.retrieveAllTagsForUser}"
type="preRenderView" />
<f:event listener="#{homeController.populatePostsForUser}"
type="preRenderView" />
</f:metadata>
PopulatePostsfourser方法首先为用户加载所有帖子,如下所示
public void populatePostsForUser() {
EntityManager manager = applicationContext.getEntityManagerFactory()
.createEntityManager();
Query query = manager.createNamedQuery("Post.selectPostForUser");
query.setParameter("user", this.getUser());
this.posts = (List<Post>) query.getResultList();
System.out.println("populatePostFOrUser called");
}
加载页面后,我更新该方法中的帖子字段,如下所示
this.posts = (List<Post>)em.createNamedQuery("Post.selectPostsByTags").setParameter("tags", tags).getResultList();
System.out.println("number of posts selected = " + this.posts.size());
System.out.println("selected posts for this tag = " + this.posts);
System.out.println("number of posts selected for tag = " + tags + " " + this.posts.size());
这将成功更新posts字段,但在此之后,再次调用相同的populatePostsForUser方法。每次重新渲染某个组件时都称为。
这只是我想知道的一个例子。我的问题是。我如何控制jsf组件,以便我可以在另一个组件的某个ajax事件上呈现/更新/执行jsf组件?
我想知道jsf组件之间通信的最佳方式,并在涉及ajax时根据我们的选择呈现它们。
我可以通过做一些研究来解决这个问题,并从下面的链接中理解ajax执行和更新之间的区别
https://javaserverfaces.java.net/nonav/docs/2.1/vdldocs/facelets/index.html
parentcomponent.js ChildComponent.js 为什么在单击后,子组件仍然显示旧值而不重新呈现?
控制器类别:包装样品;
我有一个名为“客户列表”的组件,其中显示了API中的所有客户: 客户列表。html customers-list.ts 我有另一个名为“添加客户”的组件,我将在其中添加新客户,如下所示: 现在,POST操作正常,但如果不刷新页面,则不会更新客户列表。 如何在成功执行操作后更新组件,而无需刷新整个页面? 服务文件:
我有一个猫鼬模式 我最初设置了名称和电话字段的集合。我需要将集合更新为消息数组中的新消息和新地址到地址对象中。该函数还必须处理任何单个操作,即在某些情况下我只更新到消息数组或更新到名称和地址。所以我如何在单个函数中执行所有操作。
问题内容: import java.awt.event.ActionListener; import java.util.; import java.awt. ; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.ActionEvent; import java