读书人

求ssi仿写淘宝的商品淘选和价格的代码

发布时间: 2013-06-19 10:26:41 作者: rapoo

求ssi仿写淘宝的商品筛选和价格的代码或者原理
求大神指导了,求ssi仿写淘宝的商品淘选和价格的代码或者原理 淘宝 java?ssi
[解决办法]




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>模拟多条件筛选</title>
<meta property="qc:admins" content="15412670101010167277" />
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(function() {
//选中filter下的所有a标签,为其添加hover方法,该方法有两个参数,分别是鼠标移上和移开所执行的函数。
$("#filter a").hover(function() {
$(this).addClass("seling");
}, function() {
$(this).removeClass("seling");
});

//选中filter下所有的dt标签,并且为dt标签后面的第一个dd标签下的a标签添加样式seled。(感叹jquery的强大)
$("#filter dt+dd a").attr("class", "seled");
/*注意:这儿应该是设置(attr)样式,而不是添加样式(addClass),
不然后面通过$("#filter a[class='seled']")访问不到class样式为seled的a标签。*/

//为filter下的所有a标签添加单击事件
$("#filter a").click(function() {
$(this).parents("dl").children("dd").each(function() {
//下面三种方式效果相同(第三种写法的内部就是调用了find()函数,所以,第二、三种方法是等价的。)
//$(this).children("div").children("a").removeClass("seled");
//$(this).find("a").removeClass("seled");
$('a', this).removeClass("seled");
});

$(this).attr("class", "seled");

alert(RetSelecteds()); //返回选中结果
});
//alert(RetSelecteds()); //返回选中结果
});

function RetSelecteds() {
var result = "";
$("#filter a[class='seled']").each(function() {
//result += $(this).attr("id") + "\n";//获取标签的ID值
result += $(this).html() + "\n";//获取标签内的数据
});
return result;
}
</script>


<style type="text/css">
#filter {
width: 620px;
height: auto;
margin-left: auto;
margin-right: auto;
font-size: 12px;
}

#filter dl {
padding: 0;
margin-top: 0;
margin-bottom: 0;
clear: both;
padding: 4px 0;
}

#filter dt,dd {
display: block;
float: left;
width: auto;
padding: 0;
margin: 3px 0;
}

#filter dt {
height: 14px;
padding-bottom: 4px;
font-weight: bold;
color: #333333;
}

#filter dd {
color: #005AA0;
margin-right: 8px;
}

#filter a {
cursor: pointer;
}

.seling {
background-color: #005AA0;
color: #FFFFFF;
}

.seled {
background-color: #005AA0;
color: #FFFFFF;
}
</style>
</head>
<body>
<div id="filter">
<dl>
<dt>品牌:</dt>
<dd>
<div>
<a id="all">全部</a>
</div>
</dd>


<dd>
<div>
<a>惠普(hp)</a>
</div>
</dd>
<dd>
<div>
<a>联想(Lenovo)</a>
</div>
</dd>
<dd>
<div>
<a>联想(ThinkPad)</a>
</div>
</dd>
<dd>
<div>
<a>宏基(acer)</a>
</div>
</dd>
<dd>
<div>
<a>华硕</a>
</div>
</dd>
<dd>
<div>
<a>戴尔</a>
</div>
</dd>
<dd>
<div>
<a>三星</a>
</div>
</dd>
<dd>
<div>
<a>索尼</a>
</div>
</dd>
<dd>
<div>
<a>东芝</a>
</div>
</dd>
<dd>
<div>
<a>Gateway</a>
</div>
</dd>
<dd>
<div>
<a>微星</a>
</div>
</dd>
<dd>
<div>
<a>海尔</a>
</div>
</dd>
<dd>
<div>
<a>清华同方</a>
</div>
</dd>
<dd>
<div>
<a>富士通</a>
</div>
</dd>
<dd>
<div>
<a>苹果(Apple)</a>
</div>
</dd>
<dd>
<div>
<a>神舟</a>
</div>
</dd>
<dd>
<div>
<a>方正</a>
</div>
</dd>
<dd>
<div>
<a>优雅</a>
</div>
</dd>
</dl>
<dl>
<dt>价格:</dt>
<dd>
<div>
<a>全部</a>
</div>
</dd>
<dd>
<div>
<a>1000-2999</a>
</div>
</dd>
<dd>
<div>
<a>3000-3499</a>
</div>
</dd>
<dd>
<div>
<a>3500-3999</a>
</div>
</dd>
<dd>
<div>
<a>4000-4499</a>
</div>
</dd>
<dd>
<div>
<a>4500-4999</a>
</div>
</dd>
<dd>
<div>
<a>5000-5999</a>
</div>
</dd>
<dd>
<div>
<a>6000-6999</a>
</div>
</dd>
<dd>
<div>
<a>7000-9999</a>
</div>
</dd>
<dd>
<div>
<a>10000以上</a>
</div>
</dd>
</dl>
<dl>
<dt>尺寸:</dt>
<dd>
<div>
<a>全部</a>
</div>
</dd>
<dd>
<div>
<a>8.9英寸及以下</a>
</div>
</dd>
<dd>
<div>
<a>11英寸</a>
</div>
</dd>
<dd>
<div>
<a>12英寸</a>
</div>
</dd>
<dd>
<div>


<a>13英寸</a>
</div>
</dd>
<dd>
<div>
<a>14英寸</a>
</div>
</dd>
<dd>
<div>
<a>15英寸</a>
</div>
</dd>
<dd>
<div>
<a>16英寸-17英寸</a>
</div>
</dd>
</dl>
<dl>
<dt>平台:</dt>
<dd>
<div>
<a>全部</a>
</div>
</dd>
<dd>
<div>
<a>AMD Brazos APU平台</a>
</div>
</dd>
<dd>
<div>
<a>Intel Sandy Bridge平台</a>
</div>
</dd>
<dd>
<div>
<a>Intel平台</a>
</div>
</dd>
<dd>
<div>
<a>AMD平台</a>
</div>
</dd>
</dl>
<dl>
<dt>显卡:</dt>
<dd>
<div>
<a>全部</a>
</div>
</dd>
<dd>
<div>
<a>独立显卡</a>
</div>
</dd>
<dd>
<div>
<a>集成显卡</a>
</div>
</dd>
<dd>
<div>
<a>核芯显卡</a>
</div>
</dd>
</dl>
</div>

<br/><br/><br/><br/>

</body>
</html>


[解决办法]
我昏,知道session怎么用么,你会SQL语句的拆分的应用么,我发一段代码,自己去看,这个很简单的加上楼上的页面代码,直接就出来了,当然还要用ajax,你很恐惧ajax么,他就那样,你一次都不用,每次都觉得难,你用过了的话,那就很简单,就像你用筷子一样,小时候不会用,但用了几次,还不是熟练得很,我用的是JPA我的实现数据层代码如下:
public List<Books> queryByAnyoneOrderbyAnyone(Integer classId,Integer isAudit,
Integer isHits, Integer hots, Integer cmd, Integer dowloadNumber,
Integer isCreateTime,Integer isDelete,Integer orderValue,Integer cmdBook,Integer cmdRead,Integer size) {
if(GeneralUtil.isNull(classId)){
classId=5;
}
String ids = parseNewsClassIds(classId);
String orderBy="order by ";
StringBuffer sb=new StringBuffer();
sb.append("select b from Books b ,NewsClass n where b.status.versionFlag=?1 and b.newsClassId=n.id and b.newsClassId in ("+ ids +") ");
if(GeneralUtil.isNotNull(isAudit)){
sb.append("and b.status.isAudit=?2 ");
}
if(GeneralUtil.isNotNull(hots)){
sb.append("and b.status.isHot=?4 ");
}
if(GeneralUtil.isNotNull(cmd)){
sb.append("and b.status.isCommend=?5 ");
}
if(GeneralUtil.isNotNull(isDelete)){
sb.append("and b.status.deleteFlag=?6 ");
}
if(GeneralUtil.isNotNull(cmdBook)){
sb.append("and b.cmdBook=?7 ");
}
if(GeneralUtil.isNotNull(cmdRead)){
sb.append("and b.cmdRead=?8 ");
}
sb.append(orderBy);
if(GeneralUtil.isNotNull(isCreateTime)){
sb.append("b.createtime desc, ");
}
if(GeneralUtil.isNotNull(isHits)){
sb.append("b.hits desc, ");
}
if(GeneralUtil.isNotNull(dowloadNumber)){
sb.append("b.dowloadNumber desc, ");
}
if(GeneralUtil.isNotNull(orderValue)){
sb.append("b.status.orderValue desc, ");


}
sb.append("b.id desc");
String jpl=sb.toString();
Query query=entityManager.createQuery(jpl);
query.setParameter(1, ContextConstants.CHINESE_VERSION);
if(GeneralUtil.isNotNull(isAudit)){
query.setParameter(2, isAudit);
}
if(GeneralUtil.isNotNull(hots)){
query.setParameter(4, hots);
}
if(GeneralUtil.isNotNull(cmd)){
query.setParameter(5, cmd);
}
if(GeneralUtil.isNotNull(isDelete)){
query.setParameter(6, isDelete);
}
if(GeneralUtil.isNotNull(cmdBook)){
query.setParameter(7, cmdBook);
}
if(GeneralUtil.isNotNull(cmdRead)){
query.setParameter(8, cmdRead);
}
if(GeneralUtil.isNotNull(size)){
query.setMaxResults(size);
}
if(GeneralUtil.isNotNull(query.getResultList()) && query.getResultList().size() > 0){
return query.getResultList();
}
return null;
}
我这个代码很笨,没办法,想不到更好的办法了,也不知道别人是怎么做的,反正我是这样做,一样实现了功能
[解决办法]
项目搭好了吗? ibatis会用吗? 都ok了的话 就不难了 写个sql而已

比如"1-1000"或"1000-2000" 参数为price

sql为

<select id="doListPro" resultClass="java.util.HashMap">
select * from product p
<dynamic prepend="where">
<isNotNull property="price">
<isEqual property="price" prepend="and" compareValue="0-1000">
p.price > 0 and 1000 > p.price
</isEqual>
<isEqual property="price" prepend="and" compareValue="1000-2000">
p.price > 1000 and 2000 > p.price
</isEqual>
</isNotNull>
</dynamic>
</select>


[解决办法]
简单,传参,条件拼装

读书人网 >Java Web开发

热点推荐