用动态元素自动更新 Web 页面
2010-01-08 00:00:00 来源:WEB开发网如您所见,category.jsp 文件内的 updateGUI() 代码行就是要绑定受管 bean 中的动态元素。它清除了之前所创建的所有动态元素、基于新的数据模型创建了新的动态元素并将它们添加到预定义的父元素中。
将不同的行为绑定给不同的链接
现在,让我们探讨一下该如何将不同的类别细节信息绑定到不同的类别链接。我对一个数组进行了迭代,将每个元素转变为一个 GUI 组件,并将它插入到 JSF 组件树。我的思路是把所有类别插入到一个数组,其中每个类别作为数组中的一个元素。每个元素都有一个方法来返回其类别的标签,用另一个方法来绑定单击动作。通过让每个元素都具有可以将它与其他元素区分开来的独有的类别信息,我就能确保对于每个元素均只有一个惟一的行为被绑定到 “onclick” 动作。
在 updateGUI() 内,"Bookstore_sublink" + index 是此类别链接的 ID。"#{InventoryBean.category[" + index+ "].categoryLabel}" 是此类别链接的标签。"#{InventoryBean.category[" + index+ "].onClickAction}" 是绑定到此类别链接的动作。getCategoryLabel() 方法被用来返回链接标签,onClickAction() 绑定单击动作(参见清单 6)。
清单 6. 值和动作绑定方法public class Category {
……
private String category;
private ArrayList<BookItem> bookitems;
public String getCategoryLabel(){
if(bookitems.size() <2){
return bookitems.size() + " " + category;
}else{
return bookitems.size() + " " + category+"(s)";
}
}
public String onClickAction(){
HttpSession session =
(HttpSession)JSFUtil.getFacesContext().
getExternalContext().getSession(true);
session.setAttribute("CATEGORY", this);
return "success";
}
……
}
更多精彩
赞助商链接