2013-02-06 21 views
6
以下

は、私は以下機能がデフォルトの名前空間が指定されていない接頭辞を使用する必要があります

<% List<UserInfo> userInfoList = new ArrayList<UserInfo>(); 
    UserInfo userInfo = new UserInfo(); 
    userInfoList = new CRUDOps().retrieveUserDataList(); 
    pageContext.setAttribute("userInfoList", userInfoList);%> 

体で書いたコードは、私がコード上のdiv

<c:forEach var="userInfo" items="${userInfoList}"> 
    <input type="radio" name="buyer" value="hhhh">${userInfo.get(0).getFirstName()}/><br /> 
    <c:forEach> 

に書いたコードがされていますUserInfoテーブルから姓と名を表示する必要があります... UserInfoListにはUserInfoオブジェクトが含まれ、UserInfoには名と姓があります。したがって、POJOで定義されたgetFirstNameを呼び出すインデックス値を "0"としてuserInfoListを使用します。デフォルトの名前空間が指定されていない場合/requestorGroup.jsp(63,59)関数GETは接頭辞を使用する必要があります:私は取得しています

エラーが

org.apache.jasper.JasperExceptionがあります

答えて

10

UserInfoは、姓と名を持ち、かつuserInfoはタイプUserInfoである場合、それにget(0)を呼び出しても意味がありません:それはリストではありません、それはすべての最初の要素を持っていません。それは名と姓があります。

あなたは単に

<c:forEach var="userInfo" items="${userInfoList}"> 
    <input type="radio" name="buyer" value="hhhh">${userInfo.firstName}/><br /> 
<c:forEach> 

を必要とするJSPの式言語(EL )はゲッターを経由してプロパティにアクセスします。だからゲッターを使うべきではなく、単にプロパティの名前:firstName

また、JSPでスクリプトレットを避け、データベースのデータを取得するコードを代わりにサーブレットに入れる必要があります。さらに、4行のうち2行は完全に不要です。コードを次のように減らす必要があります。

List<UserInfo> userInfoList = new CRUDOps().retrieveUserDataList(); 
pageContext.setAttribute("userInfoList", userInfoList); 
+0

ありがとう – ashlesha

+0

はいメソッドでBeanプロパティにアクセスせず、直接アクセスするだけです。プロパティを公開する必要があります。 – Akash5288

関連する問題