下面是我在正文中写的代码
<% List<UserInfo> userInfoList = new ArrayList<UserInfo>();
UserInfo userInfo = new UserInfo();
userInfoList = new CRUDOps().retrieveUserDataList();
pageContext.setAttribute("userInfoList", userInfoList);%>
Run Code Online (Sandbox Code Playgroud)
下面是我在div中编写的代码
<c:forEach var="userInfo" items="${userInfoList}">
<input type="radio" name="buyer" value="hhhh">${userInfo.get(0).getFirstName()}/><br />
<c:forEach>
Run Code Online (Sandbox Code Playgroud)
上面的代码,必须显示UserInfo表中的名字和姓氏... UserInfoList包含UserInfo对象,UserInfo有名字和姓氏.因此,使用索引值为"0"的userInfoList调用POJO中定义的getFirstName.
我得到的错误是
org.apache.jasper.JasperException:/requestorGroup.jsp(63,59)当未指定默认命名空间时,函数get必须与前缀一起使用
JB *_*zet 11
如果UserInfo有名字和姓氏,并且userInfo是类型UserInfo,则调用get(0)它是没有意义的:它不是列表,并且它没有任何第一个元素.它有名字和姓氏.
你只需要
<c:forEach var="userInfo" items="${userInfoList}">
<input type="radio" name="buyer" value="hhhh">${userInfo.firstName}/><br />
<c:forEach>
Run Code Online (Sandbox Code Playgroud)
JSP表达式语言(EL)通过getter访问属性.所以你不应该使用getter,而只需要使用属性的名称:firstName.
您还应该避免JSP中的scriptlet,并将从数据库获取数据的代码放入servlet中.而且,4条线中的两条完全没必要.代码应该简化为:
List<UserInfo> userInfoList = new CRUDOps().retrieveUserDataList();
pageContext.setAttribute("userInfoList", userInfoList);
Run Code Online (Sandbox Code Playgroud)