0

私はxhtmlページを持っています

<p:outputPanel>
    <p:outputLabel id="temp1"
    for="temp11" value="Start Date:" />
    <p:calendar id="startDateId"
    widgetVar="startDateFromVar" title="#"
    showOn="button" disabled="true"/>
</p:outputPanel>

private String date;

/**
     * @return the Date
     */
    public String getDate() {
        date = "11/10/2012 19:15";
        return date;
    }

    /**
     * @param Date the Date to set
     */
    public void setDate(String ate) {
        this.date = date;
    }

xhtmlで日付を表示するには? この行を p:calendar value=#{bean.date}に追加しています

カレンダー アイコンだけでなく、日付も表示されません。

どんな助けでも大歓迎です。

4

2 に答える 2

1

表示する値は、 (kolossusがすでに指摘したように)<p:calendar/>のタイプである必要があります。java.util.Date日付の既知の文字列表現が既にある場合は、その文字列を解析してオブジェクトjava.text.SimpleDateFormatを取得する必要があります。java.util.Date

private void parserDate() {
    String dateStr = "11/10/2012 19:15";
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm");
    try {
        date = formatter.parse(dateStr);
    } catch (ParseException ex) {
        // handle
    }
}

public Date getDate() {
    if (date == null)
        parserDate();
    return date;
}

public void setDate(Date date) {
    this.date = date;
}

カレンダー要素の表示パターンもフォーマットできます。属性をdateStr使用するのと同じフォーマットで日付を表示するには:pattern

<p:calendar id="startDateId" value="#{bean.date}" disabled="true"
                    widgetVar="startDateFromVar" pattern="dd/MM/yyyy HH:mm"/>

  • disabled="true"カレンダーでオプションを使用する場合は、p:inputText代わりに を使用して を表示しますprivate String date。次に、追加の解析とフォーマットを削除できます。

    <p:inputText value="#{bean.date}" disabled="true"/>
    
  • <p:outputLabel for="..."/>に存在しないID を指すと、結果はFacesException. 多分あなたが望んでいた:

    <p:outputLabel id="temp1" for="startDateId" value="Start Date:" />
    
于 2012-10-26T05:45:00.763 に答える
1

StackOverflow がこの質問をホームページに劇的に復活させたので、答えてみましょう。

ここには多くの問題があります。最初から始めましょう:

1) Bean の日付は実際の日付ではありません。ストリングです!解決策は簡単です。日付を処理する場合は、Bean を変更して、java.lang.String ではなく java.util.Date を処理します。

import java.util.Date;

public class MyDateBean {

    private Date date;

    public Date getDate() {
        return this.date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

}

2) 日付を表示するだけの場合は、デフォルトの outputtext JSF コンポーネントを使用してください。目的の形式でコンバーターを追加することを忘れないでください。

<h:outputText value="#{myDateBean.date}" >
    <f:convertDateTime pattern="dd/MM/yyyy HH:mm" />
</h:outputText>

ちなみに、使用したコンポーネント:

<p:calendar id="startDateId"
    widgetVar="startDateFromVar" title="#"
    showOn="button" disabled="true"/>

ユーザーがカレンダー パネルから日付を選択できるようにする、primefaces カレンダー コンポーネントです。必要な場合は、次のようにします。

<p:calendar id="startDateId" value="#{myDateBean.date}" pattern="MM/dd/yyyy HH:mm:ss"/>

取得する:

ここに画像の説明を入力

適用できるカスタマイズがいくつかあります。Calendar Primefaces コンポーネントの詳細については、Primefaces デモ ページを参照してください: https://www.primefaces.org/showcase/ui/input/calendar.xhtml

于 2017-11-08T02:16:07.997 に答える