The simplest thing is to use the LabelValueBean class provided by the example.
 
In your Action, a database query (or equivalent) would create a collection of LabelValueBeans, and then insert the collection into the request context.
 
First, the database query executes a query and returns the rowset as an instance variable named list..
 
Then you can transfer the rowset to a collection (e.g. ArrayList)
 
  public ArrayList fetchList() throws SQLException {
    if (result==null) { return (null); }
    else {
      String defaultValue = "1980"; // FIXME - YEAR
      String defaultLabel = "ALL"; // FIXME
      ArrayList list = new ArrayList();
      list.add(new LabelValueBean(defaultLabel,defaultValue)); // Defaults at top of the list
      while (result.next()) {
        String year = result.getString(1);
        list.add(new LabelValueBean(year, year));
      }
      return(list);
  }
 
And,
 
request.setAttribute("salesYears",salesYearsList);
 
There is a working example of this using a DISTINCT query in "Struts with a Fruit Glaze", found at < http://husted.com/about/struts >
 
I haven't tried it, but I think the part about "only property" refers to whether the label (in the drop down) use the same or different labels.

*********** REPLY SEPARATOR ***********

On 1/15/2001 at 11:28 PM Johann Dorn wrote:
Hello,
 
I have some problems with the options tag, which I want to use in conjunction with my ActionForm.
 
 
In the example application the collection is filled directly in the subscription.jsp
<%-- In real life, these would be loaded from a database --%>
<%
  java.util.ArrayList list = new java.util.ArrayList();
  list.add(new org.apache.struts.example.LabelValueBean("IMAP Protocol", "imap"));
  list.add(new org.apache.struts.example.LabelValueBean("POP3 Protocol", "pop3"));
  pageContext.setAttribute("serverTypes", list);
%>
 
 
 
 
According to the Documentation the options-Tag can be used in a different way:
- The ActionForm  bean can contain the collection,
- Only property is specified - The value of this attribute is the name of a property of the ActionForm bean associated with our form, which will return the collection.
 
 
But I alwas get expceptions like
'javax.servlet.ServletException: Cannot create iterator for PersForm@dafb2f4a'
 
 
Can anyone give me an example or some hints how the options-Tag must be used in conjunction with the ActionForm?
 
 
Best Regards
Johann Dorn
 
 
 
 

Reply via email to