本文介绍了如何将 Bean 中的项目列表显示到 JSF 网页上?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是 JSF 的新手,正在学习构建在线书店应用程序.
我有 1 个类和 1 个 bean:Book.java
和 BookCatelogBean.java
.Book 类有 3 个属性:id
、title
和 author
以及相应的 getter 和 setter.BookCatelogBean
包含一个 ArrayList
,我在其中用 Books
填充它(将来我会将它连接到数据库).
我有两个页面:index.xhtml
和 book.xhtml
.我想在 index.xhtml
上显示书名列表,每个书名都格式化为 REST 链接及其 ID 到 book.xhtml
,如下所示:<h:link 结果="book?id=#{bookCatelogBean.id}" value="#{bookCatelogBean.title}"/>
我知道如何使用 BookCatelogBean
来显示 1 个 book
但我想显示所有这些?我有一个想法,从 BookCatelogBean
调用一个名为 getAllBooks()
的方法,该方法返回每本书的标题,但我将如何将每本书返回到 index.xhtml 作为JavaserverFace 链接而不是字符串?
谢谢
这是我的代码:
Book.java
包书店;导入 java.io.Serializable;公共类 Book 实现了 Serializable {私有整数 ID;私人字符串标题;私人字符串作者;公共书(int id,字符串标题,字符串作者){this.title = 标题;this.id = id;this.author = 作者;}公共字符串 getAuthor() {返回作者;}公共无效setAuthor(字符串作者){this.author = 作者;}公共 int getId() {返回标识;}公共无效 setId(int id) {this.id = id;}公共字符串 getTitle() {返回标题;}公共无效设置标题(字符串标题){this.title = 标题;}}
BookCatelogBean.java
包书店;导入 java.io.Serializable;导入 java.util.ArrayList;导入 java.util.Arrays;导入 javax.faces.bean.ManagedBean;导入 javax.faces.bean.SessionScoped;@ManagedBean@SessionScoped公共类 BookCatelogBean 实现了 Serializable {私人 int currentItem = 0;私有 ArrayListbook = new ArrayList(Arrays.asList(新书(1,货币与信用理论",路德维希·冯·米塞斯"),新书(2,人,经济与国家",默里罗斯巴德"),new Book(3, "实时关系", "Stefan Molyneux")));公共字符串 getTitle(){返回 book.get(currentItem).getTitle();}公共 int getId(){返回 book.get(currentItem).getId();}公共字符串 getAuthor(){返回 book.get(currentItem).getAuthor();}}
index.xhtml
<html <h:头><title>书店</title></h:head><h:body><h:link 结果="book?id=#{bookCatelogBean.id}" value="#{bookCatelogBean.title}"/></h:body>