如何查看JSP中product对象的可用属性?
如何查看JSP中EL表达式可用的JavaBean属性
直接查看后端Product类的源码
JSP的EL表达式${product.xxx}本质是调用JavaBean的getXxx()方法(属性名是方法名去掉get后首字母小写)。比如getName()对应name,getPrice()对应price。如果找不到源码,用IDE的反编译工具查看类结构就行。在JSP页面临时打印所有属性
应急情况下可以在页面加一段Java代码片段,直接遍历对象的所有属性:<% // 用反射遍历所有字段 java.lang.reflect.Field[] fields = product.getClass().getDeclaredFields(); for (java.lang.reflect.Field field : fields) { field.setAccessible(true); out.println(field.getName() + ": " + field.get(product) + "<br>"); } %>这段代码会在页面上输出product对象的所有属性名和对应值,你就能找到price对应的正确名称。如果项目里引入了commons-beanutils包,也可以用更简洁的方式:
<% java.util.Map<String, Object> props = org.apache.commons.beanutils.BeanUtils.describe(product); for (java.util.Map.Entry<String, Object> entry : props.entrySet()) { out.println(entry.getKey() + ": " + entry.getValue() + "<br>"); } %>确认对应getter方法存在
EL能访问的属性必须有对应的getter方法。比如要访问price,得确保Product类里有public 类型 getPrice()这样的方法(布尔类型是isPrice())。如果没有getter,就算字段存在,EL也访问不到。
内容的提问来源于stack exchange,提问作者EtherealCodingPro
相关产品推荐
相关产品推荐

