java服务器面临属性访问问题
我有索引。带有
<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;
}
当我访问索引时。调用HTMLGetUsers是绝对正常的,但当我离开索引时。html到其他一些页面getUsers也被调用,如何避免二次调用
# 1 楼答案
不要使用POST进行页面间导航。所以不要使用
<h:commandLink>
或<h:commandButton>
导航到另一个页面。它将不必要地向服务器提交表单,并重新创建同一个bean。只需使用<a>
、<h:outputLink>
、<h:link>
或<h:button>
进行页面间导航即可。他们直接向目标URL发出GET请求使用GET进行页到页导航的另一个优点是,搜索机器人将为页面编制索引。因此,更好的搜索引擎优化