2016-07-08 10 views
0

私はJSFを初めて使用しているので、私の質問が些細な場合はごめんなさい。オブジェクトタイプに基づくHTMLの動的生成

私は3つの異なるタイプのアイテムのリストを提示しなければなりません:異なるメタデータ(属性)を持ち、異なる視覚的表現を必要とする書籍、ソフトウェア、コースを挙げましょう。

これらの各アイテムは、抽象アイテムクラスから継承されているため、アイテムのリストがあります。

抽象メソッドgetHtml()をItemクラスに宣言して、各サブクラスが独自のレンダラーを実装できるようにすることを考えました。次に、XHTMLページでELを使用してgetHtml()メソッドを呼び出します。 質問は正しいですか?

  1. モデルビュー
  2. (維持するのは非常に困難)Javaコードによって生成されたHTMLと混合: は、私はいくつかの欠点を参照してください。

ご了承ください。

この合成プレゼンテーションが十分明確であるかどうかは分かりません。その場合は、説明を求めてください。

ありがとうございます。

+0

ありがとう、BalusC!あなたは私を右の柵で運転しました。私は必要なものを知っていたが、私は何を尋ねるべきか分からなかった。あなたが指摘したアナウンサーは、私が探していたものです。再度、感謝します。 – baronKarza

+0

ようこそ。 – BalusC

答えて

0
  1. 3つのドロップダウリストの中から選択するためのページを作成します。
  2. ビューの場合は、book.xhtml、boftware.xhtml、およびcourses.xhtmlの3つのファイルを作成します。
  3. 次に、マネージドBeanを1つ作成します。

    @ManagedBean 
    public class BkSoCoSelector { 
    private String myChoice = null; 
    //add setter and getter. 
    //add no-arg constructor. 
    } 
    
  4. 。注[例を参照動的選択を行うために、上記クラスのメソッドを作成します。以下の選択は、上記#1、ドロップダウン・リストに基づいています。メインページ、#1に

    public String pageSelector(){ //if null, return nothing. //if this.myChoice == book, return book; //no file extension needed. //do the same for the other files. }

  5. 、以下

    <h:commandButton value = "Submit" action = "#{bkSoCoSelector.pageSelector()}"/>

を要約する追加:

  • は、ユーザーに選択肢を与える
  • セットt彼はインスタンス変数に値を選択しました。 //シーンの背後にある。
  • 今設定されたインスタンス変数を取得します。
  • インスタンス変数の値に基づいて、表示するページを選択します。
+0

Xenwar、すばやく答えてくれてありがとう。アイテムタイプの選択が実現できないため、私は問題にそれを適用できません。リストはElasticsearchの結果セットであるため、すべてのアイテムをまとめて提示する必要があります。 BalusCのコメントは、必要なすべての情報を結果リストに表示できるXHTMLフラグメントをdinamicallyロードする正しい方法を示しました。しかし、もう一度あなたの提案に感謝します。 – baronKarza

関連する問題