我是法国人,我会尽我所能与你一起开玩笑。 我有一个有书籍和信息书的数据表。 我希望我的表格创建一个按钮,用于将我的书添加到我的订单中(订购myOrder),但我不能,尽管我试图这样做。
我的面孔:
<div class="divListLivres">
<h1>Liste des livres</h1>
<h:dataTable styleClass="order-table"
headerClass="order-table-header"
rowClasses="order-table-odd-row,order-table-even-row" var="_book"
value="#{catalogueIBean.books}">
<h:column>
<f:facet name="header">Titre</f:facet>
<h:outputLabel value="#{_book.title}" />
</h:column>
<h:column>
<f:facet name="header">Editeur</f:facet>
<h:outputLabel value="#{_book.editor}" />
</h:column>
<h:column>
<f:facet name="header">Auteur</f:facet>
<h:outputLabel value="#{_book.author.firstName}" />
<h:outputLabel value=" #{_book.author.lastName}" />
</h:column>
<h:column>
<f:facet name="header">Prix unitaire</f:facet>
<h:outputLabel value=" #{_book.unitPrice}" />
<h:outputLabel value="€" />
</h:column>
</h:dataTable>
</div>
你能帮帮我吗?通过将操作重定向到我的bean的方法(CatalogueIBean whith方法“addOrder(){}”),确保直接在我的对象“Order myOrder”中添加该行。谢谢!
答案 0 :(得分:1)
您可以轻松地将另一列命令按钮添加到数据表中,这样您每行中都会有一个按钮,可以将您重定向到所需的方法
<p:column style="width:6%" headerText="Add to Order">
<p:commandButton id="addOrderButton"
action="#{catalogueIBean.addOrder}" immediate="true" ajax="true"
icon="ui-icon-folder-open">
<f:param name="id" value="#{_book.id}" />
</p:commandButton>
</p:column>
注意:您可以根据需要更改图标,如果您不想要图标,则可以删除,而您可以通过按钮的value属性命名按钮。此外,如果您不希望按钮位于数据表中,您可以在数据表格的外部创建一个新表单,并在那里添加按钮。
你的支持bean应该是
FacesContext context = FacesContext.getCurrentInstance();
Map requestMap = context.getExternalContext().getRequestParameterMap();
String value = (String) requestMap.get("id");
Integer id = Integer.parseInt(value);
现在您拥有可以遍历所需对象的每行的ID
答案 1 :(得分:0)
功能“AddOrder”无法启动,但我的方法“init()”是。
我想检索我的行的“order”对象,我不知道这是怎么回事。
它应该包含一些用于ajax工作的东西?
这是我的bean的开头:
@ManagedBean(name = "catalogueIBean")
@RequestScoped
public class CatalogueIBean {
@Inject
private FacesContext facesContext;
@Inject
private BookService bookService;
// ////////////////Variables de facelet//////////////////
private String title;
private String isbn13;
private Double price;
private int selectAuthor;
private List<Author> authors;
private String selectEditor;
private List<SelectItem> editorNames;
private List<Book> books;
private Book selectedBook;
// ////////////////Méthodes de facelet//////////////////
public String addOrder(/*parameter ??*/) throws Exception {
//add order of the line of datatable in my order (or create an orderLine)
return null;
}
// ////////////////Initialisation//////////////////
@PostConstruct
public void init() throws Exception {
.......
}
谢谢