我想用JSF进行一些交互式选择。我有那个代码:
<h:form>
<h:selectOneMenu value="#{booksController.book}" immediate="true">
<f:selectItems value="#{booksController.books}" var="book" itemValue="#{book}" itemLabel="#{book.title}" />
<f:ajax execute="@this" render="book" />
</h:selectOneMenu>
<h:panelGroup id="book">
<div>#{booksController.book.title}</div>
#{booksController.book.details}
</h:panelGroup>
</h:form>
控制器:
@ManagedBean
@ViewScoped
public class BooksController extends Controller {
private Book book;
public BooksController() {}
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
public Book[] getBooks() {
return new Book[] { ... };
}
}
在该示例中,我想创建bookOneMenu书籍,每个项目都是书籍的标题,并且在更改时,下面的详细信息将会更新。
我尝试的所有内容都没有正确更新book
元素。似乎是
#{booksController.book}
根本不是更新(booksController
定义为ViewScoped
)。
如何正确更新?