0

このケースをどのように実装するかについての提案をお願いします。(jsf 2.0 と primefaces 3.5 を使用)

  • 約 10 個の素数の入力テキストを持っている
  • primefaces dataTable を 1 つ持つ
  • (名前、説明など...) のような 10 個のプロパティを持つ Contact という名前のエンティティがあります。

  • inputTextsに入力してボタンをクリックした後、dataTableに行を追加する最良の方法。? (DBにデータを永続化することはできません。型指定された新しいデータをdataTableの新しい行に追加するだけです)

ありがとう、

4

2 に答える 2

3

結果を得るために(10回)行うことは次のとおりです。

必要なエンティティ Bean を指定することから始めます。ここでは、これを多くの善良な魂に役立つようにするために一般的なままにします。

package pack;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped
public class Entity {

    private String entityProperty ;

    public String getEntityProperty() {
        return entityProperty;
    }

    public void setEntityProperty(String entityProperty) {
        this.entityProperty = entityProperty;
    }


    public Entity(String e) {
        this.entityProperty = e ;
    }
}

Entity次に、これを Bean で使用する必要があります(これを と呼びBeanます)。dataTable行を作成するために反復するリストを埋めるためにそれを行います。これが豆です:

    package pack ;

import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped
public class Bean {
    private String property ;
    private ArrayList<Entity> list ;

    public ArrayList<Entity> getList() {
        return list;
    }

    public void setList(ArrayList<Entity> list) {
        this.list = list;
    }

    public String getProperty() {
        return property;
    }

    public void setProperty(String property) {
        this.property = property;
    }

    public Bean() {
        list = new ArrayList<Entity>();
    }

    public void showInDataTable(){
        list.add(new Entity(property));
    }

}

最後に、プレゼンテーション ページに移動します。通常、 primefaces サイトのツアーでは、何をどのように使用するかについてのアイデアが得られます。

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>StackOverflow</title>
    </h:head>
    <h:body>
        <h:form>
            <p:inputText value="#{bean.property}" />
            <p:commandButton value="show in dataTable" action="#{bean.showInDataTable}" update="dataTable"/>
            <p:dataTable id="dataTable" value="#{bean.list}" var="o">
                <p:column>
                    <h:outputText value="#{o.entityProperty}" /> 
                </p:column>
            </p:dataTable>
        </h:form>
    </h:body>
</html>

したがって、これをニーズに合わせて調整します。Entity同等のプロパティが処理する必要があるプロパティを決定すると、うまく流れるはずです(つまり、あなたの場合、Bean とエンティティの 9 つのプロパティとそれらの調整されたコンストラクター)。

幸運を祈ります。

于 2013-06-22T09:17:50.787 に答える