Goods物品表,photo物品照片表,一个物品对应5张照片
双向关联映射已经做好了,查goods的时候用的criteria条件查询
怎么在查 所有的 goods的时候,同时把每个goods对应的一张photo也查出来 ?
贴代码了,太多了,不爱看的不看吧,高手们帮我看一下,我应该怎么写代码,才能在后台和页面取得photoName。
就是html代码部分我要<img src='../images/<s:property value="photos"/>拿到photoName,这里怎么改才能正确显示图片,怎么做呢?
问题已经解决,更新代码了。
html代码
- <form id="searchForm" name="searchForm" action="retrieveGoodsAction_retrieveAllGoods">
- <s:hidden name="frontGoodsQueryCriteria.sortHelper.colIndex" id="index" value="0"></s:hidden>
- <s:hidden name="frontGoodsQueryCriteria.sortHelper.colName" id="colName" value="goodsId"></s:hidden>
- <s:hidden name="frontGoodsQueryCriteria.sortHelper.sortedType" id="colType" value="asc"></s:hidden>
- <s:hidden name="page.pageNo" value="1"></s:hidden>
-
- 省略提交按钮
- <s:iterator value="page.content" id="l">
-
- <li> 0
- <div class="pro_disp pro_104px">
- <a href='retrieveGoodsAction_retrieveGoodsById?goodsId=<s:property value="goodsId"></a>' target="_blank">
- <img src='../imagesGoods/<s:iterator value="photos"><s:property value="photoName"/></s:iterator>' alt="图片不正确" />
- </a>
- </div>
- <b class="p_overflow">
- <a href='retrieveGoodsAction_retrieveGoodsById?goodsId=<s:property value="goodsId"></a>' target="_blank" title='<s:property value="goodsName"/>'>
- <s:property value="goodsName"/>
- </a>
- </b>
-
-
- </li>
-
- </s:iterator>
- </form>
action代码
- public class RetrieveGoodsAction extends BaseAction{
-
- private Integer cateId;
- private Integer goodsId;
-
- private List<Goods> lgoods;
- private Set<Photo> photos = new HashSet<Photo>(0);
-
-
-
- Page page = new Page();
-
- private GoodsQueryCriteria frontGoodsQueryCriteria=
- new GoodsQueryCriteria(new SortHelper("goodsId"));
-
-
-
-
-
-
- public String retrieveAllGoods() throws Exception{
-
- page = fgmi.goodsInfoByPage(page, frontGoodsQueryCriteria);
- Iterator itr = page.getContent().iterator();
- while(itr.hasNext()){
- Goods goods = (Goods) itr.next();
- photos = goods.getPhotos();
- System.out.println( "物品名称:" + goods.getGoodsName());
- Iterator it = goods.getPhotos().iterator();
- while(it.hasNext()){
- Photo ph =(Photo)it.next();
- System.out.println("图片名:" + ph.getPhotoName());
- }
-
- System.out.println("---------111++++++++==");
- }
- if(page != null){
- return "retrieveSuccess";
- }
- return ERROR;
- }
-
- public Integer getCateId() {
- return cateId;
- }
- public void setCateId(Integer cateId) {
- this.cateId = cateId;
- }
- public Integer getGoodsId() {
- return goodsId;
- }
- public void setGoodsId(Integer goodsId) {
- this.goodsId = goodsId;
- }
- public List<Goods> getLgoods() {
- return lgoods;
- }
- public void setLgoods(List<Goods> lgoods) {
- this.lgoods = lgoods;
- }
-
- public Page getPage() {
- return page;
- }
-
- public void setPage(Page page) {
- this.page = page;
- }
-
- public GoodsQueryCriteria getFrontGoodsQueryCriteria() {
- return frontGoodsQueryCriteria;
- }
-
- public void setFrontGoodsQueryCriteria(
- GoodsQueryCriteria frontGoodsQueryCriteria) {
- this.frontGoodsQueryCriteria = frontGoodsQueryCriteria;
- }
-
- public Set<Photo> getPhotos() {
- return photos;
- }
-
- public void setPhotos(Set<Photo> photos) {
- this.photos = photos;
- }
-
-
- }
ManagerImpl里的方法
-
-
-
-
-
-
-
-
- public Page goodsInfoByPage(Page page, GoodsQueryCriteria frontGoodsQueryCriteria) throws CampusException {
- try{
- page.setTotalRecNum(new Long(frontGoodsDao.queryGoodsTotal(frontGoodsQueryCriteria)));
-
- page.setContent(frontGoodsDao.queryGoodsByPage(page.getStartIndex().intValue(), page
- .getPageSize(), frontGoodsQueryCriteria));
-
- return page;
- }catch (Exception e){
- e.printStackTrace();
-
- throw new CampusException();
- }
- }
dao代码
-
-
-
-
-
-
-
-
-
- public List<Goods> queryGoodsByPage(int startIndex, int fetchSize, GoodsQueryCriteria frontGoodsQueryCriteria) {
-
- DetachedCriteria criteria=this.buildCriteria(frontGoodsQueryCriteria);
-
- List<Goods> goods = this.getHibernateTemplate().findByCriteria(criteria, startIndex - 1, fetchSize);
-
- return goods;
- }
-
-
-
-
-
-
-
-
- public Integer queryGoodsTotal(GoodsQueryCriteria frontGoodsQueryCriteria){
-
- DetachedCriteria criteria=this.buildCriteria(frontGoodsQueryCriteria);
-
- criteria.setProjection(Projections.rowCount());
-
- return (Integer)this.getHibernateTemplate().findByCriteria(criteria).get(0);
-
- }
-
-
-
-
-
-
-
-
-
- private DetachedCriteria buildCriteria(GoodsQueryCriteria frontGoodsQueryCriteria)
- {
- DetachedCriteria criteria=DetachedCriteria.forClass(Goods.class);
-
- if (frontGoodsQueryCriteria.getGoodsId() != null){
- criteria.add(Restrictions.like("goodsId",frontGoodsQueryCriteria.getGoodsId().trim(), MatchMode.ANYWHERE));
- }
-
- if (StringUtils.isNotEmpty(frontGoodsQueryCriteria.getGoodsName())){
- criteria.add(Restrictions.like("goodsName", frontGoodsQueryCriteria.getGoodsName().trim(), MatchMode.ANYWHERE));
- }
-
- if (frontGoodsQueryCriteria.getGoodsStatus() != null){
- criteria.add(Restrictions.like("goodsStatus",frontGoodsQueryCriteria.getGoodsStatus()));
- }
-
- if (frontGoodsQueryCriteria.getGoodsShelf() != null){
- criteria.add(Restrictions.like("goodsShelf",frontGoodsQueryCriteria.getGoodsShelf()));
- }
- if (frontGoodsQueryCriteria.getSortHelper() != null){
- if(frontGoodsQueryCriteria.getSortHelper().getSortedType().equals("desc"))
-
- criteria.addOrder(Property.forName(frontGoodsQueryCriteria.getSortHelper().getColName()).desc());
- else
- criteria.addOrder(Property.forName(frontGoodsQueryCriteria.getSortHelper().getColName()).asc());
- }
- return criteria;
- }
映射文件photo.hbm.xml
- <?xml version="1.0"?>
- <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-
- <hibernate-mapping package="com.campus.back.model">
- <class name="Photo" table="t_photo">
- <id name="photoId" type="int">
- <column name="photo_id" />
- <generator class="increment" />
- </id>
- <many-to-one name="goods" class="Goods" fetch="select" lazy="false">
- <column name="goods_id" />
- </many-to-one>
- <property name="photoName" type="string">
- <column name="photo_name" length="50" />
- </property>
- <property name="photoCaption" type="string">
- <column name="photo_caption" length="50" />
- </property>
- </class>
- </hibernate-mapping>
Photo.java
- public class Photo implements java.io.Serializable {
-
- private int photoId;
- private Goods goods;
- private String photoName;
- private String photoCaption;
-
- }
Goods.hbm.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-mapping
- PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-
- <hibernate-mapping package="com.campus.back.model">
- <class name="Goods" table="t_goods">
-
- <id name="goodsId" type="string" column="goods_id">
-
- <generator class="assigned"/>
- </id>
-
- <property name="goodsName" column="goods_name" type="string"
- length="60" not-null="false"/>
- <property name="goodsNew" column="goods_new" type="string"
- length="1" />
- <property name="goodsDetail" column="goods_detail" type="string"
- length="65535" />
- <property name="goodsStatus" column="goods_status" type="string"
- length="1" not-null="false"/>
- <property name="goodsRegist">
- <column name="goods_regist" sql-type="datetime"/>
- </property>
- <property name="goodsValidity" column="goods_validity" type="string"
- length="3" />
- <property name="goodsStart">
- <column name="goods_start" sql-type="datetime"/>
- </property>
- <property name="goodsEnd">
- <column name="goods_end" sql-type="datetime"/>
- </property>
- <property name="goodsShelf" column="goods_shelf" type="string"
- length="1" />
- <many-to-one name="cate" class="Cate" fetch="select" lazy="false">
- <column name="category_id"/>
- </many-to-one>
- <many-to-one name="user" class="User" fetch="select" lazy="false">
- <column name="user_id"/>
- </many-to-one>
- <set name="photos" table="t_photo" inverse="true" lazy="false" fetch="select">
- <key>
- <column name="goods_id" not-null="false" />
- </key>
- <one-to-many class="Photo" />
- </set>
- </class>
- </hibernate-mapping>
Goods.java
- import java.util.Date;
- import java.util.HashSet;
- import java.util.Set;
-
-
-
-
-
-
-
-
-
- public class Goods {
-
- private String goodsId;
-
- private String goodsName;
-
- private String goodsNew;
-
- private String goodsDetail;
-
- private String goodsStatus;
-
- private Date goodsRegist;
-
- private String goodsShelf;
-
- private String goodsValidity;
-
- private Date goodsStart;
-
- private Date goodsEnd;
-
- private Cate cate;
- private User user;
-
- private Set<Photo> photos = new HashSet<Photo>(0);
- }
实现分页功能的相关的类
Page.java
- package com.campus.common;
-
- import java.util.Collection;
-
-
-
-
-
-
-
-
-
- public class Page {
-
- private Integer pageNo = new Integer(1);
- private Integer pageSize;
- private Collection content;
- private Long totalRecNum;
-
-
-
-
-
-
- public Page(Integer pageNo)
- {
- super();
- this.pageNo=pageNo;
- this.pageSize=10;
- }
-
- public Page()
- {
- this(new Integer(1));
- }
-
- public Integer getPageNo() {
- return pageNo;
- }
-
- public void setPageNo(Integer pageNo) {
- this.pageNo = pageNo;
- }
-
- public Integer getPageSize() {
- return pageSize;
- }
-
- public void setPageSize(Integer pageSize) {
- this.pageSize = pageSize;
- }
-
- public Collection getContent() {
- return content;
- }
-
- public void setContent(Collection content) {
- this.content = content;
- }
-
- public Long getTotalRecNum() {
- return totalRecNum;
- }
-
- public void setTotalRecNum(Long totalRecNum) {
- this.totalRecNum = totalRecNum;
- }
-
- public Integer getTotalPageNum() {
- return totalRecNum%pageSize!=0?(int)(totalRecNum/pageSize+1):(int)(totalRecNum/pageSize);
- }
-
- public Boolean getPrePage() {
- return pageNo>1;
- }
-
- public Boolean getNextPage() {
- return pageNo<this.getTotalPageNum();
- }
-
- public Long getStartIndex() {
- return 1L*pageSize*(pageNo-1)+1;
- }
-
- public Long getEndIndex() {
- return pageSize*pageNo>this.getTotalRecNum()?this.getTotalRecNum():pageSize*pageNo;
- }
-
-
- }
SortHelper.java
-
-
-
-
-
-
-
- public class SortHelper {
-
- private Integer colIndex;
- private String colName;
- private String sortedType;
-
- public SortHelper() {
-
- }
-
- public SortHelper(String colName) {
- colIndex = 0;
- sortedType = "asc";
- this.colName = colName;
- }
- public Integer getColIndex() {
- return colIndex;
- }
- public void setColIndex(Integer colIndex) {
- this.colIndex = colIndex;
- }
- public String getColName() {
- return colName;
- }
- public void setColName(String colName) {
- this.colName = colName;
- }
- public String getSortedType() {
- return sortedType;
- }
- public void setSortedType(String sortedType) {
- this.sortedType = sortedType;
- }
-
-
- }
FrontGoodsQueryCriteria.java
- package com.campus.front.criteria;
-
- import java.util.Date;
-
- import com.campus.common.SortHelper;
-
-
-
-
-
-
-
-
- public class FrontGoodsQueryCriteria {
- private SortHelper sortHelper;
-
- private String goodsId;
-
- private String goodsName;
-
- private String goodsStatus;
-
- private Date goodsRegist;
-
- private String goodsShelf;
-
- private Date goodsStart;
-
- private Date goodsEnd;
-
-
- public FrontGoodsQueryCriteria(SortHelper sortHelper) {
- this.sortHelper = sortHelper;
- }
-
- public String getGoodsId() {
- return goodsId;
- }
- public void setGoodsId(String goodsId) {
- this.goodsId = goodsId;
- }
- public String getGoodsName() {
- return goodsName;
- }
- public void setGoodsName(String goodsName) {
- this.goodsName = goodsName;
- }
- public String getGoodsStatus() {
- return goodsStatus;
- }
- public void setGoodsStatus(String goodsStatus) {
- this.goodsStatus = goodsStatus;
- }
- public Date getGoodsRegist() {
- return goodsRegist;
- }
- public void setGoodsRegist(Date goodsRegist) {
- this.goodsRegist = goodsRegist;
- }
- public String getGoodsShelf() {
- return goodsShelf;
- }
- public void setGoodsShelf(String goodsShelf) {
- this.goodsShelf = goodsShelf;
- }
- public Date getGoodsStart() {
- return goodsStart;
- }
- public void setGoodsStart(Date goodsStart) {
- this.goodsStart = goodsStart;
- }
- public Date getGoodsEnd() {
- return goodsEnd;
- }
- public void setGoodsEnd(Date goodsEnd) {
- this.goodsEnd = goodsEnd;
- }
- public void setSortHelper(SortHelper sortHelper) {
- this.sortHelper = sortHelper;
- }
- public SortHelper getSortHelper() {
- return sortHelper;
- }
- }