B2C 전자상거래 사이트: 3 대 프레임 워 크, ajax, jquery 와 json 이 통합 개발 한 상품 유형의 자체 연결 작업 (즉 무한 등급 분류)

B2C 전자상거래 사이트: 3 대 프레임 워 크, ajax, jquery 와 json 이 통합 개발 한 상품 유형의 자체 연결 작업 (즉 무한 등급 분류)
 
        최근 B2C 전자상거래 사 이 트 를 운영 하고 있 으 며, 그저께 상품 유형의 자체 연결 작업 (즉 무한 등급 분류) 을 쓰 고 있 으 며, 이전에 servlet + jsp 로 쓴 적 이 있다.하지만 이 제 는 3 대 프레임 워 크 로 통합 개발 해 야 한다.처음에는 생각 이 없 었 는데 나중에 반복 적 인 사 고 를 통 해 천천히 생각해 냈 습 니 다. 오늘 은 여러분 과 나 누 겠 습 니 다. 아마 여러분 이 나중에 사용 할 수 있 을 것 입 니 다.        자세 한 코드 는 다음 과 같 습 니 다.
 
list.jsp

<s:a href="types/insert.jsp">  </s:a>


insert.jsp

<tr>
	<td class="gridViewHeader">
		      
	</td>
	<td class="gridViewItem" id="parents">
			
	</td>
</tr>

 
  Types.java
 
package cn.z_xiaofei168.domain;

import java.util.HashSet;
import java.util.Set;

public class Types implements java.io.Serializable {

	/**
	 * @author z_xiaofei168
	 */
	private static final long serialVersionUID = 1L;
	private Integer id;
	private String name;
	private String description;
	/**     */
	private Types parents;//    
	private Set<Types> childrens;//    
	private Set<Goods> goodses = new HashSet<Goods>(0);

                     set get  
}

 
  Types.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 default-lazy="false"
	package="cn.z_xiaofei168.domain">
	<class name="Types" table="types">
		<id name="id" type="java.lang.Integer">
			<column name="id" />
			<generator class="identity" />
		</id>
		<property generated="never" lazy="false" name="name"
			type="java.lang.String">
			<column length="50" name="name" not-null="true" />
		</property>
		<property generated="never" lazy="false" name="description"
			type="java.lang.String">
			<column length="100" name="description" />
		</property>
		<many-to-one name="parents" class="Types" column="types_id"
			lazy="false" />

		<set name="childrens" inverse="true" cascade="save-update">
			<key column="types_id" />
			<one-to-many class="Types" />
		</set>
		<set inverse="true" lazy="false" name="goodses" sort="unsorted">
			<key>
				<column name="type_id" not-null="true" />
			</key>
			<one-to-many class="Goods" />
		</set>
	</class>
</hibernate-mapping>

 
  
<script type="text/javascript"
			src="${pageContext.request.contextPath}/js/jquery-1.6.js">
</script>
<script type="text/javascript">

window.onload = function(){

	alert("test1");
	fun();	
}

function fun(){
	$.ajax({	
			type : "post",
			url : "csdn/types_findTypes.action",
			dataType : "json",
			success : function(data) {
				$("#parents").empty();
				var sel = $("<select>").attr("name", "parents.id");
				var opt = $("<option>").attr("value", 0).text("--   --");
				sel.append(opt);
				$.each(data.entities, function(i, entity) {
					var opts = $("<option>").attr("value", entity.id);
					opts.text(entity.name);
					sel.append(opts);
				});
				sel.appendTo($("#parents"));
			}
		});
}
	
</script> 

 
  TypesAction.java
 
   TypesServiceImpl.java
 
  
package cn.z_xiaofei168.action;

import java.util.List;
import cn.z_xiaofei168.dao.Pagination;
import cn.z_xiaofei168.domain.Types;
import cn.z_xiaofei168.service.TypesServiceImpl;
import com.opensymphony.xwork2.ActionSupport;

public class TypesAction extends ActionSupport {

	/**
	 * @author z_xiaofei168
	 */
	private static final long serialVersionUID = 1L;

	/**       */
	private TypesServiceImpl typesServiceImpl;
	private Types entity;
	private List<Types> entities;
	private Types parents;

	//       set get  
	
	/**       */
	public String add() throws Exception {
		/**        */
		if (parents.getId() == null||parents.getId()<=0) {
			entity.setParents(null);
		} else {
			parents = typesServiceImpl.findById(parents.getId());
			entity.setParents(parents);
		}
		typesServiceImpl.add(entity);
		return "add";
	}
	
	public String findTypes() throws Exception {
		entities = typesServiceImpl.findAll();
		return SUCCESS;
	}

}

 
  TypesServiceImpl.java
 
 
package cn.z_xiaofei168.service;

import java.util.List;
import cn.z_xiaofei168.dao.TypesDaoImpl;
import cn.z_xiaofei168.domain.Types;

public class TypesServiceImpl implements TypesService {

	private TypesDaoImpl typesDaoImpl;

	public void setTypesDaoImpl(TypesDaoImpl typesDaoImpl) {
		this.typesDaoImpl = typesDaoImpl;
	}

	public void add(Types entity) throws Exception {
		typesDaoImpl.add(entity);
	}

	public List<Types> findAll() throws Exception {
		return typesDaoImpl.findAll();
	}
	
	public Types findById(Integer id) throws Exception {
		return typesDaoImpl.findById(id);
	}

}
 
    TypesDaoImpl.java    
package cn.z_xiaofei168.dao;

import java.util.List;
import java.util.Set;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import cn.z_xiaofei168.domain.Goods;
import cn.z_xiaofei168.domain.Messages;
import cn.z_xiaofei168.domain.Orderdetails;
import cn.z_xiaofei168.domain.Types;

public class TypesDaoImpl extends HibernateDaoSupport implements TypesDao {

	public void add(Types entity) throws Exception {
		this.getHibernateTemplate().save(entity);
	}

	@SuppressWarnings("unchecked")
	public List<Types> findAll() throws Exception {
		return this.getHibernateTemplate().find("from Types");
	}
}
    struts.xml    
<!-- TypesAction bean -->
<action name="types_*" class="typesAction" method="{1}">
	<result name="add" type="chain">types_list</result>
	<result name="success" type="json">
		<param name="includeProperties">
			entities\[\d+\]\.id,
			entities\[\d+\]\.name
		</param>
	</result>
</action 
      비고: struts. xml   되 돌아 오 는 데 이 터 는 < package name = "goods" extends = "json - default" namespace = "/ xiaofie" > 입 니 다.       이상 은 대부분의 코드 입 니 다. 인터페이스 같은 것 은 제 가 위 에 붙 이지 않 았 습 니 다.다 들 아 실 거 라 고 믿 습 니 다.마지막 으로 표 시 된 결 과 를 보고 싶다 면 내 앨범 에 가서 그림 을 볼 수 있다.  jaj3.bmp。
 

좋은 웹페이지 즐겨찾기