2011-03-04 92 views
1

我有index.html页面与javaserverfaces属性访问问题

<h:dataTable id="usersTable" value="#{mainViewController.users}" var="user" border="1"> 
.... 

,并请求范围mainViewController豆

@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叫,那绝对是正常的,但是当我把index.html留给其他一些页面getUsers也叫,如何避免二次调用?

回答

4

不要使用POST进行页面到页面的导航。因此,请勿使用<h:commandLink><h:commandButton>导航到其他页面。它会不必要地将表单提交给服务器并重新创建相同的bean。只需使用<a>,<h:outputLink>,<h:link><h:button>进行页面到页面导航。他们直接在目标URL上发起GET请求。

使用GET进行页面到页面导航的另一个优点是,Searchbots将索引页面。因此,对SEO更好。