You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Randall Svancara <rs...@wsu.edu> on 2007/09/12 23:27:59 UTC

Struts2 select taglib

I mostly have experience with original struts.  But now I am attempting
to use Struts 2.  I am trying to figure out how I can populate the
select tag.

I have created an action class, called Blast with the following
attributes:
1. List<Database> databases = new ArrayList();

There are two methods, getDatabases and setDatabases 

I have created another class called Database with the following
attributes: 
1. int id
2. String database
3. String databasetype

I want to use the select tag to access the List of Database objects in
the action class Blast>

This is how I am using the action class:

<s:select name="database" list="databases" listKey="id"
listValue="database" "emptyOption="true"></s:select>

As you can see, I specify the list equal to databases which should
correspond to getDatabases in my action class, Blast.  My listKey is
equal to id, which should correspond to the id field in my Database
class.  And finally, listValue should correspond to database in my
Database class.

My jsp page fails to compile/execute giving errors like:

/view/Index.jsp(55,87) Unterminated &lt;s:select tag

or 






-- 
Randall Svancara
System Administrator
Horticulture and Landscape Architecture
509-335-7093

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Struts2 select taglib

Posted by Randall Svancara <rs...@wsu.edu>.
Ummm, i apologize.....I made a very simple mistake:

<s:select name="database" list="databases" listKey="id"
listValue="database" "emptyOption="true"></s:select>

I put an extra " in the select tag.
 

On Wed, 2007-09-12 at 14:35 -0700, Randall Svancara wrote:
> <SORRY, I SENT THIS TOO EARLY>
> 
> I mostly have experience with original struts.  But now I am attempting
> to use Struts 2.  I am trying to figure out how I can populate the
> select tag.
> 
> I have created an action class, called Blast with the following
> attributes:
> 1. List<Database> databases = new ArrayList();
> 
> There are two methods, getDatabases and setDatabases 
> 
> I have created another class called Database with the following
> attributes: 
> 1. int id
> 2. String database
> 3. String databasetype
> 
> I want to use the select tag to access the List of Database objects in
> the action class Blast.java
> 
> This is how I am using the action class:
> 
> <s:select name="database" list="databases" listKey="id"
> listValue="database" "emptyOption="true"></s:select>
> 
> As you can see, I specify the list equal to databases which should
> correspond to getDatabases in my action class, Blast.  My listKey is
> equal to id, which should correspond to the id field in my Database
> class.  And finally, listValue should correspond to database in my
> Database class.
> 
> My jsp page fails to compile/execute giving errors like:
> 
> /view/Index.jsp(55,87) Unterminated &lt;s:select tag
> 
> or 
> 
> org.apache.jasper.JasperException: Unable to load class for JSP
> 
> I am including copies of the files in case someone is kind enough to
> help a pathetic newbie out with this.
> 
> <BLAST.Java>
> mport java.io.File;
> import java.util.ArrayList;
> import java.util.Collections;
> import java.util.Date;
> import java.util.HashMap;
> import java.util.List;
> import java.util.Map;
>  
> import org.apache.struts2.ServletActionContext;
>  
> import com.opensymphony.xwork2.ActionSupport;
> import com.opensymphony.xwork2.Validateable;
> import com.opensymphony.xwork2.util.ValueStack;
> 
> import edu.wsu.bioinfo.domain.Database;
> 
> import org.apache.log4j.Logger;
> 
> public class Blast extends MainLabSupport {
>         
>         static final long serialVersionUID=1L;
>         private static Logger logger = Logger.getLogger(Blast.class);
>         
>         
>         private String title;
>         private String emailaddress;
>         private String database;
>         private List<Database> databases = new ArrayList();
>         
>         // Default Constructor
>         public Blast(){
>           
>           Database db1 = new Database(1, "NCBI Fragaria EST", "EST");
>           Database db2 = new Database(2, "NCBI Malus EST", "EST");
>           Database db3 = new Database(3, "NCBI Prunus EST", "EST");
>           this.databases.add(db1);
>           this.databases.add(db2);
>           this.databases.add(db3);
>           
>         }
>         
>         
>     public String execute() throws Exception {
> 
> 
>         
>         
>         return INPUT;
>     }
> 
> 
>         /**
>          * @return the title
>          */
>         public String getTitle() {
>                 return title;
>         }
> 
> 
>         /**
>          * @param title the title to set
>          */
>         public void setTitle(String title) {
>                 this.title = title;
>         }
> 
> 
>         /**
>          * @return the emailaddress
>          */
>         public String getEmailaddress() {
>                 return emailaddress;
>         }
> 
> 
>         /**
>          * @param emailaddress the emailaddress to set
>          */
>         public void setEmailaddress(String emailaddress) {
>                 this.emailaddress = emailaddress;
>         }
> 
> 
>         /**
>          * @return the database
>          */
>         public String getDatabase() {
>                 return database;
>         }
> 
> 
>         /**
>          * @param database the database to set
>          */
>         public void setDatabase(String database) {
>                 this.database = database;
>         }
> 
> 
>         /**
>          * @return the databases
>          */
>         public List<Database> getDatabases() {
>                 return databases;
>         }
> 
> 
>         /**
>          * @param databases the databases to set
>          */
>         public void setDatabases(List<Database> databases) {
>                 this.databases = databases;
>         }
> 
> }
> 
> 
> <Database.java>
> 
> public class Database {
> 	
> 	private int databaseid;
> 	private String database;
> 	private String databasetype;
> 	
> 	
> 	/**
> 	 * Default Constructor
> 	 */
> 	public Database(){
> 		
> 	}
> 	
> 	/**
> 	 * Constructor with parameters
> 	 * @param databaseid
> 	 * @param database
> 	 * @param databasetype
> 	 */
> 	public Database(int databaseid, String database, String databasetype){
> 		this.databaseid = databaseid;
> 		this.database = database;
> 		this.databasetype = databasetype;
> 	}
> 	
> 	/**
> 	 * @return the databaseid
> 	 */
> 	public int getDatabaseid() {
> 		return databaseid;
> 	}
> 	/**
> 	 * @param databaseid the databaseid to set
> 	 */
> 	public void setDatabaseid(int databaseid) {
> 		this.databaseid = databaseid;
> 	}
> 	/**
> 	 * @return the database
> 	 */
> 	public String getDatabase() {
> 		return database;
> 	}
> 	/**
> 	 * @param database the database to set
> 	 */
> 	public void setDatabase(String database) {
> 		this.database = database;
> 	}
> 	/**
> 	 * @return the databasetype
> 	 */
> 	public String getDatabasetype() {
> 		return databasetype;
> 	}
> 	/**
> 	 * @param databasetype the databasetype to set
> 	 */
> 	public void setDatabasetype(String databasetype) {
> 		this.databasetype = databasetype;
> 	}
> 
> }
> 
> <Index.jsp>
> 
> <s:form action="index" enctype="multipart/form-data"> 
>     <table>
>       <tr>
>         <td>
>           Search Title:
>         </td>
>         <td>
>           <s:textfield name="title" size="50"></s:textfield>
>         </td>
>       </tr>
>       <tr>
>         <td>
>           Email Address:
>         </td>
>         <td>
>           <s:textfield name="email" size="50"></s:textfield>
>         </td>
>       </tr>
>       <tr>
>         <td>
>           Database:
>         </td>
>         <td>
>            
>           <s:select name="database" list="databases" listKey="id"
> listValue="database" "emptyOption="true"></s:select>
>         </td>
>       </tr>
>     </table>
>     <div class="tabber">     
>       <div class="tabbertab">
>         <h2>Upload File</h2>
>         File: <s:file name="testfile" size="50"></s:file>
>       </div>
>       <div class="tabbertab">
>         <h2>Cut and Paste</h2>
> 		Paste Sequence into Text Area:<br />
>         <s:textarea tooltip="Cut and Past your sequence" cols="80"
> rows="8"  name="sequence" label="Sequence">
>         </s:textarea>
>       </div>
>       
>       <s:select name="searchBy" list="#{'01':'Begins with',
> '02':'Contains', '03':'Equals'}" />
>     </div>
> 
> 
> <s:submit  />
> <s:reset />
> 
> </s:form>
> 
> 
> <End of Transmission>
> 
> 
> On Wed, 2007-09-12 at 14:27 -0700, Randall Svancara wrote:
> > user@struts.apache.org
-- 
Randall Svancara
System Administrator
Horticulture and Landscape Architecture
509-335-7093

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Struts2 select taglib

Posted by Randall Svancara <rs...@wsu.edu>.
<SORRY, I SENT THIS TOO EARLY>

I mostly have experience with original struts.  But now I am attempting
to use Struts 2.  I am trying to figure out how I can populate the
select tag.

I have created an action class, called Blast with the following
attributes:
1. List<Database> databases = new ArrayList();

There are two methods, getDatabases and setDatabases 

I have created another class called Database with the following
attributes: 
1. int id
2. String database
3. String databasetype

I want to use the select tag to access the List of Database objects in
the action class Blast.java

This is how I am using the action class:

<s:select name="database" list="databases" listKey="id"
listValue="database" "emptyOption="true"></s:select>

As you can see, I specify the list equal to databases which should
correspond to getDatabases in my action class, Blast.  My listKey is
equal to id, which should correspond to the id field in my Database
class.  And finally, listValue should correspond to database in my
Database class.

My jsp page fails to compile/execute giving errors like:

/view/Index.jsp(55,87) Unterminated &lt;s:select tag

or 

org.apache.jasper.JasperException: Unable to load class for JSP

I am including copies of the files in case someone is kind enough to
help a pathetic newbie out with this.

<BLAST.Java>
mport java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.apache.struts2.ServletActionContext;
 
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.Validateable;
import com.opensymphony.xwork2.util.ValueStack;

import edu.wsu.bioinfo.domain.Database;

import org.apache.log4j.Logger;

public class Blast extends MainLabSupport {
        
        static final long serialVersionUID=1L;
        private static Logger logger = Logger.getLogger(Blast.class);
        
        
        private String title;
        private String emailaddress;
        private String database;
        private List<Database> databases = new ArrayList();
        
        // Default Constructor
        public Blast(){
          
          Database db1 = new Database(1, "NCBI Fragaria EST", "EST");
          Database db2 = new Database(2, "NCBI Malus EST", "EST");
          Database db3 = new Database(3, "NCBI Prunus EST", "EST");
          this.databases.add(db1);
          this.databases.add(db2);
          this.databases.add(db3);
          
        }
        
        
    public String execute() throws Exception {


        
        
        return INPUT;
    }


        /**
         * @return the title
         */
        public String getTitle() {
                return title;
        }


        /**
         * @param title the title to set
         */
        public void setTitle(String title) {
                this.title = title;
        }


        /**
         * @return the emailaddress
         */
        public String getEmailaddress() {
                return emailaddress;
        }


        /**
         * @param emailaddress the emailaddress to set
         */
        public void setEmailaddress(String emailaddress) {
                this.emailaddress = emailaddress;
        }


        /**
         * @return the database
         */
        public String getDatabase() {
                return database;
        }


        /**
         * @param database the database to set
         */
        public void setDatabase(String database) {
                this.database = database;
        }


        /**
         * @return the databases
         */
        public List<Database> getDatabases() {
                return databases;
        }


        /**
         * @param databases the databases to set
         */
        public void setDatabases(List<Database> databases) {
                this.databases = databases;
        }

}


<Database.java>

public class Database {
	
	private int databaseid;
	private String database;
	private String databasetype;
	
	
	/**
	 * Default Constructor
	 */
	public Database(){
		
	}
	
	/**
	 * Constructor with parameters
	 * @param databaseid
	 * @param database
	 * @param databasetype
	 */
	public Database(int databaseid, String database, String databasetype){
		this.databaseid = databaseid;
		this.database = database;
		this.databasetype = databasetype;
	}
	
	/**
	 * @return the databaseid
	 */
	public int getDatabaseid() {
		return databaseid;
	}
	/**
	 * @param databaseid the databaseid to set
	 */
	public void setDatabaseid(int databaseid) {
		this.databaseid = databaseid;
	}
	/**
	 * @return the database
	 */
	public String getDatabase() {
		return database;
	}
	/**
	 * @param database the database to set
	 */
	public void setDatabase(String database) {
		this.database = database;
	}
	/**
	 * @return the databasetype
	 */
	public String getDatabasetype() {
		return databasetype;
	}
	/**
	 * @param databasetype the databasetype to set
	 */
	public void setDatabasetype(String databasetype) {
		this.databasetype = databasetype;
	}

}

<Index.jsp>

<s:form action="index" enctype="multipart/form-data"> 
    <table>
      <tr>
        <td>
          Search Title:
        </td>
        <td>
          <s:textfield name="title" size="50"></s:textfield>
        </td>
      </tr>
      <tr>
        <td>
          Email Address:
        </td>
        <td>
          <s:textfield name="email" size="50"></s:textfield>
        </td>
      </tr>
      <tr>
        <td>
          Database:
        </td>
        <td>
           
          <s:select name="database" list="databases" listKey="id"
listValue="database" "emptyOption="true"></s:select>
        </td>
      </tr>
    </table>
    <div class="tabber">     
      <div class="tabbertab">
        <h2>Upload File</h2>
        File: <s:file name="testfile" size="50"></s:file>
      </div>
      <div class="tabbertab">
        <h2>Cut and Paste</h2>
		Paste Sequence into Text Area:<br />
        <s:textarea tooltip="Cut and Past your sequence" cols="80"
rows="8"  name="sequence" label="Sequence">
        </s:textarea>
      </div>
      
      <s:select name="searchBy" list="#{'01':'Begins with',
'02':'Contains', '03':'Equals'}" />
    </div>


<s:submit  />
<s:reset />

</s:form>


<End of Transmission>


On Wed, 2007-09-12 at 14:27 -0700, Randall Svancara wrote:
> user@struts.apache.org
-- 
Randall Svancara
System Administrator
Horticulture and Landscape Architecture
509-335-7093

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org