質問
Jakarta EEで出勤退勤打刻のシステムを作っています。
SelectOneMenuでユーザを選択して、出勤ボタンを押すと以下のエラーメッセージが発生します。
javax.faces.el.EvaluationException: java.lang.NullPointerException
at beans.Bb.startWork(Bb.java:42)
実現したいこと
「SelectOneMenuからユーザを選択し、出勤ボタンを押下」の操作をした時にユーザ情報も込みでタイムカードを新規作成、データベースに登録したいです。
試したこと
デバッグをしたら、loginUserがnullでした。
selectOneMenuで選択した#{bb.loginUser}をBb.javaで受け取りたいのですが、nullになってしまう原因は何でしょうか?
該当のソースコード
header.xhtml
1<h:selectOneMenu value="#{bb.loginUser}"> 2 <f:selectItems value="#{bb.getAllUser()}"/> 3 <f:ajax event="change"/> 4</h:selectOneMenu>
index.xhtml
1<h:commandLink action="#{bb.startWork()}">出勤</h:commandLink>
Bb.java
1@Named 2@SessionScoped 3public class Bb implements Serializable{ 4 5private Staff loginUser; 6 7public String startWork(){ 8 9 String time1 = 現在時刻を入れる; 10 Staff stf = loginUser; 11 TimeCard tc = new TimeCard("出勤",time1,stf); 12 stf.addTimeCard(tc); ★42行目 13 tcDb.create(tc); 14 return "timeCard?faces-redirect=true"; 15} 16 17public List<Staff> getAllStaff(){ 18 return stfDb.findAll(); 19} 20 21 22(loginstaffゲッターセッター) 23
以上よろしくお願いします。
あなたの回答
tips
プレビュー