问题描述
有两个实体类ProInvoice和Product多对一关联,在action里获得ProInvoice的list集合,用session传递到Jsp页面里了,在jsp页面循环遍历的时候怎么能循环显示出product的属性,其中JSP页面里<s:propertyvalue="#proInvoice.product.id"/>能取到值,<s:propertyvalue="#proInvoice.product.name"/>取不到值action里的代码:List<ProInvoice>proInvoiceList=invoiceService.getProInvoiceList(id);Map<String,Object>session=ActionContext.getContext().getSession();session.put("proInvoiceList",proInvoiceList);
实体类代码:publicclassProInvoice{privateintid;privateInvoiceinvoice;privateProductproduct;
publicclassProduct{privateintid;privateStringname;privateStringtype;privateStringpicture;privateDoubleprice;privateSetproWhouses;privateSetproInvoices;
JSP页面<td><divclass="STYLE1"align="center"><s:propertyvalue="#proInvoice.product.id"/></div></td><td><divclass="STYLE1"align="center"><s:propertyvalue="#proInvoice.product.name"/></div></td><td><divclass="STYLE1"align="center"><inputtype="text"name="proInvoice.total"id="price"value="<s:propertyvalue="#proInvoice.total"/>"></div></td>
解决方案
解决方案二:
getset方法弄了?你LIst里面只有ProInvoice对象,没有存到Product对象,怎么取得出来
解决方案三:
你的代码有问题,首先,proInvoiceList是一个List,你在页面遍历时,遍历的每一个对象都是一个ProInvoice ,那你取值是直接用${invoice}就可以在页面显示了。如果要取Product ,只用${product.name}就可以了
解决方案四:
打断点List<ProInvoice>proInvoiceList=invoiceService.getProInvoiceList(id);看看这个proInvoiceList里的product里的name是否有值
解决方案五:
把其中一个实体类作为另外一个实体的属性进行使用。和String字符串一样的使用,String也是一个引用类型的使用,java中的实体类也是可以这样使用的,你试一试。
解决方案六:
这是从菜鸟到高手的一种蜕变!!