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

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

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

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

Q&A

解決済

1回答

8100閲覧

JSF selectOneMenuの項目をデータベースから動的に表示したい

退会済みユーザー

退会済みユーザー

総合スコア0

JSF

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

0グッド

0クリップ

投稿2016/07/06 07:48

###前提・実現したいこと
お世話になっております。
タイトルの通り、ページに遷移してきた際にデータベースから
値を取得し、その取得した値をドロップダウンリストの項目として表示したいのですが、
やり方がどうしてもわからないため、ご教授願えますでしょうか。

html

1(xhtml) 2<h:selectOneMenu value="ここに受け渡し先beanを指定"> 3 <ui:repeat var="row" value="#{yearListBean.yearlist}"> 4 <f:selectItem itemValue="#{row.str000}" /> 5 </ui:repeat> 6</h:selectOneMenu>

java

1(bean) 2package bean; 3 4import ejb.YearListEjb; 5import java.util.List; 6import javax.annotation.PostConstruct; 7import javax.ejb.EJB; 8import javax.inject.Named; 9import javax.faces.view.ViewScoped; 10import tempJpa.yearList; 11 12@Named(value = "yearListBean") 13@ViewScoped 14public class YearListBean { 15 16 private List<yearList> yearlist; 17 18 @EJB 19 YearListEjb YearListEjb; 20 21 @PostConstruct 22 public void init(){ 23 try { 24 this.yearlist = YearListEjb.yearList(); 25 }catch (Exception e){ 26 27 } 28 } 29 30 public List<yearList> getYearlist() { 31 return yearlist; 32 } 33 34 public void setYearlist(List<yearList> yearlist) { 35 this.yearlist = yearlist; 36 } 37 38 public YearListEjb getYearListEjb() { 39 return YearListEjb; 40 } 41 42 public void setYearListEjb(YearListEjb YearListEjb) { 43 this.YearListEjb = YearListEjb; 44 } 45 46}

java

1(Ejb) 2package ejb; 3 4import java.util.List; 5import javax.ejb.Stateless; 6import javax.persistence.EntityManager; 7import javax.persistence.PersistenceContext; 8import javax.persistence.Query; 9import tempJpa.yearList; 10 11@Stateless 12public class YearListEjb { 13 14 @PersistenceContext(unitName = "NYIupPU") 15 private EntityManager em; 16 17 public List<yearList> yearList() throws Exception{ 18 try{ 19 try{ 20 Query _query = em.createNamedQuery("YearTBL.findByYearName"); 21 List<yearList> tl = _query.getResultList(); 22 return tl; 23 }catch (Exception e){ 24 throw e; 25 } 26 } catch (Exception e){ 27 throw e; 28 } 29} 30 31}

以上になります。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ご質問から指摘できるのはselectOneMenu内でrepeatを使用する必要が無い点と、selectItemのEL式が以下と思われる
selectItem itemValue="#{yearListBean.Yearlist}"
2点です。まずDB抜きでselectOneMenuが表示できるよう仮組みされてはどうでしょうか。
また、他のメソッドでエラーが発生していないか確認したほうが良いと思います。


もしコードの中に書かれているアノテーション(@Named,@ViewScopedなど)については理解が未だであるようなら、そちらの学習が先になるのではないかと思います。

わかりやすいJava EE ウェブシステム入門

上記は私の学習に使った本になります。EJBでは無くCDIベースで書かれていますがご理解に役立つかも知れません。「Java基本文法を身に着けた方対象」となっています。

投稿2016/07/06 08:47

編集2016/07/06 10:47
BlueMoon

総合スコア1339

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

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

退会済みユーザー

退会済みユーザー

2016/07/12 02:03

アドバイスありがとうございます。 幾つか試してみたところ解決が出来ました。 現在独学で進めているため、確かにアノテーションについてしっかりとした 知識が無かったので、勉強をしつつやっていこうと思います。 今後ともお力をお借りするところがあるかもしれませんが、 そのときはよろしくお願いいたします。
BlueMoon

2016/07/12 03:55

学習の前に実務が始まったようなご様子なので、大変なのかと思います。 自分も実務の実績は無いのですが、ヒントやお答えできる時はご回答いたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問