JSTL使用的是公式语言(EL)的表示方法。为什么上面的代码中在用c:out输出时直接:users.userName就可以了呢?
答:users是一个TestBean对象,它有一个属性叫:userName,还有两个方法叫getUserName()和setUserName()。这样的命名规范符合javabean的命名规范,这个东东是强制的。必须这样做。然后jstl会使用java的反射机制调用getUserName()这个TestBean的方法。于是在JSP面页里的写法就会像你看到的<c:out value="${users.userName}"/>
答:users是一个TestBean对象,它有一个属性叫:userName,还有两个方法叫getUserName()和setUserName()。这样的命名规范符合javabean的命名规范,这个东东是强制的。必须这样做。然后jstl会使用java的反射机制调用getUserName()这个TestBean的方法。于是在JSP面页里的写法就会像你看到的<c:out value="${users.userName}"/>
private String userName=null; public void setUserName(String value){
this.userName=value;
} public String getUserName(){
return this.userName();
} ......
}
<c:forEach var="user" items="${users}"> user是testbean对象
<tr>
<td><c:out value="${user.userName}"/></td>
<td><c:out value="${user.password}"/></td>
<td><c:out value="${user.age}"/></td>
</tr>
</c:forEach>
这样写我就明白了,马上接贴。
能再给我解释一下:为什么写成var= "users " 执行结果还对呢?