2011-03-04 124 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更好。