【问题标题】:How to retrieve rows of a table and show them in dropdown box?如何检索表格的行并在下拉框中显示它们?
【发布时间】:2013-06-14 02:06:10
【问题描述】:

我正在使用以下代码检索项目列表,并将它们显示在下拉列表中。

问题是我需要将 ID 作为每个选项的 ID 传递,并将名称作为下拉框的每个选项的值传递。由于 Id 的类型是 int 我需要将它们转换为字符串以将它们用作 HashMap 的键。

我想知道是否有任何替代方法,以避免转换。

List <ListRows> results = session.createQuery("SELECT new 
       com.example.ListRows (d.id,d.name) FROM MyTable d").list();

for(int i=0;i<results.size();i++)
{

    myhashmap.put(ConvertToString(results.get(i).getID()),
                  results.get(i).getName();
}

 return myhashmap;
}



public String ConvertToString(int item){
      Convert item to String
      return StrItem;
   }

ListRows.java

public class ListRows {

    private String id;
    private String name;

    //Constructor 
    // getters and setters
}

JSP

 <s:select name="development"
                          id="myrows"
                          label="Rows"
                          list="myhashmap"
                          onchange="View(this.value)"
                          headerKey = "-1"
                          headerValue=" "
                          />

【问题讨论】:

  • 为什么不能在地图中使用 int 作为键类型?
  • 即使您需要(并且不需要)将 int 转换为 String,为什么需要自定义方法而不是使用 String.valueOf()

标签: hibernate jakarta-ee struts2


【解决方案1】:

如果你不创建 hashmap 而只返回 List 将起作用。 试试下面的代码,

<s:select name="development" list="%{results}" listKey="%{id}"
            listValue="%{name}" onchange="View(this.value)" label="Rows" headerKey = "-1" headerValue = " "></s:select>

【讨论】:

    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    相关资源
    最近更新 更多