質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
JSF

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1924閲覧

JSFにおいて、完了日時の取得が行えない

RI_KU

総合スコア24

JSF

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/01/14 03:31

単に完了した時点での日時の取得はできるのですが、再読込を行うと日時が更新されてしまいます。

更新されないようにするには、どのような保持の仕方をすればいいのでしょうか。
ざっくりとしてますが....

/**********BackingBean(SeigoBb.java)************/ public String today() { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); return sdf.format(date); } public String now_time() { Date date = new Date(); SimpleDateFormat sdf1 = new SimpleDateFormat("hh時mm分ss秒"); return sdf1.format(date); } /*********JSFページ****************/ <ui:composition template="resources/templates.xhtml"> <ui:define name="content"> <!-- ここを書き換える --> <p class="itiran_border">2011年度&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分野一覧</p> <div align="center"> <p:button outcome="2011_ii/2011ii_kakomon_1.xhtml" value="医学・医療編" onclick="#{cB.setCountup(1)}"/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <!----> </div> <div id="ii" style="display: block"> <table border="1"> <tr> <th class="comp">完了</th> <th></th> <th>解答日時</th> <!--**************--> <th class="comp">完了</th> <th></th> <th>解答日時</th> </tr> <tr> /*完了日時を表示する*/ <th class="ans">#{seigoBb.seigo().get(0)}</th> <th><link href="2011_ii/2011ii_kakomon_1.xhtml">問1</link></th> <th>#{seigoBb.today()}<br/>#{seigoBb.now_time()}</th> <!--****************************************************--> /*完了日時を表示する*/ <th class="ans">#{seigoBb.seigo().get(25)}</th> <th><link href="2011ii_kakomon_1.xhtml">問26</link></th> <th>1</th> </tr>

イメージだけでもいいので、どうかご教授のほどよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

BackingBeanのscopeアノテーションがRequestScopedだからではないでしょうか。SessionScopedに変えてみてはいかがでしょうか。

以下はコードサンプルです。

java

1import java.io.Serializable; 2import java.util.*; 3import javax.enterprise.context.SessionScoped; 4import javax.inject.Named; 5 6@SessionScoped 7@Named 8public Bb implements serializable { 9 10 Date compDate; 11 12 public void doCompDate(){ 13    compDate = new Date(); 14 } 15 16 public String getCompDate(){ 17 if(compDate==null)return ""; 18 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh時mm分ss秒"); 19 return sdf.format(compDate); 20 } 21 22}

html

1 2<h:body> 3 <h:form> 4 <h:commandButton action="#{bb.doCompDate()}" value="完了" /><br/> 5 完了日 <h:outputText value="#{bb.compDate}" /> 6 </h:form> 7</h:body> 8

投稿2016/01/14 08:36

編集2016/01/16 01:05
BlueMoon

総合スコア1339

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RI_KU

2016/01/15 02:15

やはりローカル変数なので、アノテーションを変えてもうまくいかなかったです...
BlueMoon

2016/01/16 01:05

サンプルコードを追加しました。
RI_KU

2016/01/18 03:27

ありがとうございます! if文のところの発想は自分になかったです!
guest

0

date インスタンスはコンストラクタ初期化時一度だけ、とか、
date がローカル変数ならそりゃ呼び出すたびにコロコロ変わるのは自明でしょう。
public today() {
if (date == null) date = new Date();
....
}
こうやると、すれっどの同時衝突でココじゃない別の場所で落ちるのでごちゅいください。

投稿2016/01/14 06:42

ipadcaron

総合スコア1693

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問