【问题标题】:Struts 2 select and Distinct select itemsStruts 2 选择和区分选择项
【发布时间】:2013-03-14 10:59:53
【问题描述】:

我有一个 ArrayList 类型为 empDetail(一个 POJO 类)。

List<EmpDetail> empDetailList = new ArrayList<EmpDetail>();

这个列表代表数据库中的一个表。 我需要下拉列表的值,所以我这样做了

<s:select list="empDetailList" listKey="country"  listValue="country" name="country"></s:select> 

通过这个,我从数据库中获得了国家列的所有行,这很好。但我需要这个下拉列表中的唯一国家/地区。

我知道我可以编写一个 SQL 查询来获得不同的国家,但是在这种情况下如何做到这一点。

更新 1: 你们中的任何人都有 Hibernate 解决方案吗?

更新 2: 我的POJO类如下...

package bean;

import java.io.Serializable;
import java.sql.Date;


public class EmpDetail implements Serializable{

    private static final long serialVersionUID = 1L;

    private Long     id;
    private String   name;
    private int  age;
    private String   address;
    private String   city;
    private String   section;
    private String   country;
    private String   classStudying;
    private String   fatherName;
    private String   motherNmae;
    private Date     DOJ;
    private String   certificates;
    private Date     CompletedDate;
    private String   crossCheckedBy;
    private Date     crossCheckedDate;
    private String   comments;


    //and its getters and setters...


}

【问题讨论】:

  • 你如何填充你的列表?
  • @AleksandrM 我已经在我的问题中展示了它。我使用select * form empDetail 获取所有列,然后将其存储在此arrayList 中。
  • 原来是SQL查询。为什么不使用 distinct?
  • @AleksandrM 我需要所有列,并且我将拥有所有列的下拉列表。你给我的答复是我已经在关于 DISTINCT 的问题中提到了它。
  • 为什么不编写单独的 SQL 查询来仅检索国家/地区列表?

标签: java hibernate struts2 hql


【解决方案1】:

您需要按国家/地区对象分组。简单的 HQL 查询

from EmpDetail where id in (select max(id) from EmpDetail group by country)

【讨论】:

  • 我同时需要所有列?
  • @SathishKumarkk 查询返回Set&lt;EmpDetail&gt; 而不是List&lt;Object[]&gt;。为此目的使用 EmpDetail 的访问器。
【解决方案2】:

如果你想显示不同的选择项意味着

 EmpDetail empDetail = new EmpDetail();
 Map<Object, Object> empDetailMap = new LinkedHashMap<Object, Object>();
    if (empDetailList.size() > 0) {
        for (Iterator<EmpDetail> iter = industryDetail.iterator(); iter.hasNext();) {
            empDetail = (EmpDetail) iter.next();
            empDetailMap.put(empDetail.getId(),empDetail.getName());
        }
    }

【讨论】:

  • 不,我没有只有一列显示为下拉列表...在这种情况下,我在arrayList中有完整的表在JSP页面中做什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多