0

誰かが商品を検索した後に商品をカートに追加するためのボタンまたはリンクの作成に取り組んでいます。ProdcutsController.java クラスのセクションは次のとおりです。

public String getResponse() {
    String resultStr = "";
    resultStr += theModel.getProductID() + "<br/>"
            + theModel.getUserID() + "<br/>"
            + theModel.getTitle() + "<br/>"
            + theModel.getProductType() + "<br/>"
            + theModel.getProductDesc() + "<br/>"
            + theModel.getRating() + "<br/>"
            + theModel.getPictureURL() + "<br/>"
            + theModel.getPrice() + "<br/>";

    response = resultStr;
    return response;
}

public String searchProduct() {
    ProductsDAO aProductDAO = new ProductsDAOImpl();    // Creating a new object each time.
    ArrayList products = aProductDAO.searchProduct(theModel); 

    response = "";

    for (int i=0; i < products.size(); i++) {
        theModel = (ProductsBean)products.get(i);
        response += getResponse();
    }
    theModel.setSearchResult(response);

    return "searchResults.xhtml"; // navigate to "searchResults.xhtml"
}

現在、見た目と同じくらい悪い表示になっています。私は JSF の初心者であり (このコースではバージョン 2.1 を使用しています)、以前に同様のコースで ASP.NET を使用したことがあります。"h:commandLink / h:commandButton is not being invoked" に対する BalusC のコメントのルール #2 に違反していると思われる私の最初のアイデアは、メソッドを呼び出す commandButton の JSF コードをレスポンス += getResponse() の後に追加することでした。 、製品コントローラー内の addToCart() 。それぞれの検索結果の横にボタンを表示しますが、 #{cartController.addToCart()} メソッドは実行しません。

「JSFデータテーブル内のJSFコマンドボタン」に対するBalusCのコメントのようなデータテーブルを調べました。基本的に、これは 2 つの質問に要約されます。

  • データ テーブルにデータを表示して、列の [カートに追加] ボタンを使用する必要がありますか? これを特定の製品 ID の addToCart() メソッドにバインドできますか? 私たちは JSF を初めて使用するので、「すべき」と尋ねました。
  • 私の最初の解決策は実行可能でしたか? から文字列内に実行可能な JSF フォーム ボタンを動的に作成できますか?
  • 私たちが試みていたものよりも簡単なものはありますか?

どんな助けでも大歓迎です。現在、JSF 2.1 を使用しています。

4

1 に答える 1