查询2个表比较然后做下拉菜单显示

查询2个表比较然后做下拉菜单显示


这段代码是在Main.jsp中用来查询地区的


<select name="Qarea">
<option value="">
全部
</option>
<c:forEach var="typeArea" items="${requestScope.typeArea}" >
<c:if test="${typeArea.ntId==requestScope.Qarea}">
<option value="${typeArea.ntName}" selected="selected">
<c:out value="${typeArea.ntName}"></c:out>
</option>
</c:if>
<c:if test="${typeArea.ntId!=requestScope.Qarea}">
<option value="${typeArea.ntName}">
<c:out value="${typeArea.ntName}"></c:out>
</option>
</c:if>
</c:forEach>
</select>


下面详细分析每句话的意思,每个值得获取。
第一句。其中items="${requestScope.typeArea}是从action中的select方法中取得的,然后给var="typeArea" 做变量。名字叫做typeArea

Select中的
List typeArea=this.getTellist().getQarea();

this.getTellist()是action中private TelListDAO tellist; get/set方法得出来的。

getQarea()是TelListDAO 中的方法。


public class TelListDAO extends BaseDAO {
/*
* 查询全部列表 han
* */
public List getQarea(){
String hql="from Nodetree where ntParentId=136";
List typeList=this.hibernateHelper.query(hql);
return typeList;
}
}



BaseDAO 里面都是对Hibernate对象的增删该查的操作。


package com.et.dao.impl;
import com.et.bean.HibernateHelper;
public class BaseDAO {

HibernateHelper hibernateHelper=null;

/**
* @return the hibernateHelper
*/
public HibernateHelper getHibernateHelper() {
return hibernateHelper;
}

/**
* @param hibernateHelper the hibernateHelper to set
*/
public void setHibernateHelper(HibernateHelper hibernateHelper) {
this.hibernateHelper = hibernateHelper;
}
public void save(Object object) {
hibernateHelper.save(object);
}
public void update(Object object) {
hibernateHelper.update(object);
}
public void delete(Object object) {
hibernateHelper.delete(object);
}
public void attachDirty(Object object) {
hibernateHelper.saveOrUpdate(object);
}
}


第二句
<c:if test="${typeArea.ntId==requestScope.Qarea}">
ntId Qarea这两个值是从两个表里面查询出来的。然后判断这两个值是否相等,如果相等
则执行
<option value="${typeArea.ntName}" selected="selected">
<c:out value="${typeArea.ntName}"></c:out>
</option>
选中{typeArea.ntName}这个值并输出显示出来。

中间插播option 的selected 的用法
http://www.dreamdu.com/xhtml/tag_option/
option 标签 -- 代表选择列表的一个选择项
option标签是成对出现的,以<option>开始,以</option>结束
属性:
Common -- 一般属性
label -- 说明选择项
value -- 说明选择项的值
selected -- 此选择项已经被选择
disabled -- 输入框无法获得焦点,无法选择,以灰色显示,在表单中不起任何作用
tabindex -- 使用"tab"键的遍历顺序


如果不相等
则执行
<c:if test="${typeArea.ntId!=requestScope.Qarea}">
<option value="${typeArea.ntName}">
<c:out value="${typeArea.ntName}"></c:out>
</option>
</c:if>

返回头在说typeArea.ntId==requestScope.Qarea 这2个值是怎么取得的

typeArea.ntId 的值 从items="${requestScope.typeArea}"取得的一个属性,也就是String hql="from Nodetree where ntParentId=136"; 这个对象的一个属性也就是表Nodetree 中的一个字段。

requestScope.Qarea的值 从action中
Pagination paginationGroup = this.getTellist().getTelList(tel,Qarea,currentPage);
注意要定义String Qarea=request.getParameter("Qarea");

同上
getTellist()是action中的
private TelListDAO tellist; get/set 方法得到的。
getTelList 是


public class TelListDAO extends BaseDAO {
/**
* 为了取得TelList表中的需要的字段,并做显示
*/
public Pagination getTelList(String tel,String area,Integer currentPage){
String hql="from TelList as model where 1=1 ";
if(tel!=null&&!"".equals(tel)){
hql = hql +"and model.tel='"+tel+"'";
System.out.println(tel);
}
if(area!=null&&!"".equals(area)){
hql = hql +"and model.area='"+area+"'";
}
hql = hql +" order by model.tid desc";
Pagination pagination =this.hibernateHelper.QueryAll(hql, currentPage, 12);
return pagination;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值