`
qmug
  • 浏览: 197501 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • J2EE
阅读更多
查询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;
}
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics