action 里
Query query = this.session.createQuery(querystr);
Iterator itr = query.iterate();

Vector dictCollection = new Vector();
while (itr.hasNext()) {
//dictCollection.add((Dict) itr.next());
Dict groupType = (Dict) itr.next();
dictCollection.add(new LabelValueBean(groupType.getDescribe(),String.valueOf(groupType.getCoding())));
}
request.setAttribute("list", dictCollection);jsp文件里:<html:select property="productsort" >
<html:options collection="list" property="value" labelProperty="label"/>
</html:select>

解决方案 »

  1.   

    在页面你只管给每个输入框定一样的名字  比如 <input type="text"  name="temp">
    然后在相应的FORMBEAN里面要有个List temp的属性(名字要一样)
    并且setTemp(String[] t){
        for(int i=0;i<t.length;i++)this.temp.get(i)=t[i];
    }
    楼主可以试试,我没有验证过
      

  2.   

    osborne(做人要本份!) :你那样做是传统做法,我想问问有没有利用formbean获得这个列表内容的,谢谢
      

  3.   

    zyzjaffery(farinelli):我试过了你的方法,temp属性得不到各个文本框的值
      

  4.   

    我是这样写的:public class AddItemForm extends ActionForm {    private String[] options;    public String[] getOptions() {
            return options;
        }    public void setOptions(String[] options) {
            for(int i=0 ;i<options.length;i++){
                this.options[i]=new String();
                this.options[i]=options[i];
            }
        }
    报错exception javax.servlet.ServletException: BeanUtils.populate
    org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1254)
    org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    survey.EncodingFilter.doFilter(EncodingFilter.java:26)
    root cause java.lang.reflect.InvocationTargetException
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1789)
    org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1684)
    org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1713)
    org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1019)
    org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
    org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252)
    org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    survey.EncodingFilter.doFilter(EncodingFilter.java:26)
      

  5.   

    你想定义在ActionForm里啊, <html:optionsCollection property="typeList" label="describe" value="coding"/>ActionForm 里定义typeList的集合属性, 并建立set/get方法.  Action里, 为集合typeList赋值[Vector typeList = XXX.getType()]. 集合里存放的是一个类对象, 包含describe,coding属性及set/get方法. (如Hibernate的PO)
    然后, request.setAttribue("typeList",typeList);
      

  6.   

    osborne(做人要本份!) :我需要是怎样从输入页面用formbean取得所有文本框中的值并添加到类item的options集合中去,而不关心输出页怎样读取这个options集合。
      

  7.   

    我觉得你那个getOptions(String[] options)可以直接写成this.options=options试一下或者用本办法在ACTION里通过String[] option= request.getParameterValues("xxx");
    然后手动放进FORMBEAN里还有你那样写页面的输入名字是不是“options”不是的话就不会放的
      

  8.   

    public class AddItemForm extends ActionForm {    private String[] options;    public String[] getOptions() {
            return options;
        }    public void setOptions(String[] options) {
            this.options=options
        }