javaserverfaces属性访问问题
当我访问index.html getUsers 被调用时,我有index.html 页面
<h:dataTable id="usersTable" value="#{mainViewController.users}" var="user" border="1">
....
和请求范围的mainViewController bean
@Component("mainViewController")
@Scope("request")
public class MainViewController {
@Inject
private UserDao userDao;
private Collection<User> users;
public Collection<User> getUsers() {
if (users == null) {
users = userDao.findAll();
}
return users;
}
,这是绝对正常的,但是当我将index.html 留给其他页面时getUsers 也被调用,如何避免二次调用?
I have index.html page with
<h:dataTable id="usersTable" value="#{mainViewController.users}" var="user" border="1">
....
and request scoped mainViewController bean
@Component("mainViewController")
@Scope("request")
public class MainViewController {
@Inject
private UserDao userDao;
private Collection<User> users;
public Collection<User> getUsers() {
if (users == null) {
users = userDao.findAll();
}
return users;
}
when I access index.html getUsers is called, that is absolutely normal, but when I leave index.html to some other page getUsers is also called, how avoid secondary call?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要使用 POST 进行页面间导航。因此,请勿使用
或
导航到另一个页面。它将不必要地将表单提交到服务器并重新创建相同的 bean。只需使用、
、
或;
用于页面到页面的导航。他们直接向目标 URL 发出 GET 请求。使用 GET 进行页面到页面导航的另一个优点是搜索机器人将为页面建立索引。因此,对于 SEO 来说更好。
Don't use POST for page-to-page navigation. So don't use a
<h:commandLink>
or<h:commandButton>
to navigate to another page. It will unnecessarily submit the form to the server and recreate the same bean. Just use<a>
,<h:outputLink>
,<h:link>
or<h:button>
for page-to-page navigation. They fire a GET request straight on the target URL.Another advantage of using GET for page-to-page navigation is that Searchbots will index the pages. Thus, better for SEO.