7

以下は私が本文で書いたコードです

    <% 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には名前と名前があります。したがって、インデックス値が「0」のuserInfoListを使用して、POJOで定義されたgetFirstNameを呼び出します。

私が得ているエラーは

org.apache.jasper.JasperException:/requestorGroup.jsp(63,59)デフォルトの名前空間が指定されていない場合は、関数getをプレフィックスとともに使用する必要があります

4

1 に答える 1

12

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);
于 2013-02-06T21:45:53.633 に答える