[jboss-user] [JBoss Seam] - <s:selectItems>

cormet do-not-reply at jboss.com
Tue Jul 3 21:06:07 EDT 2007


Hi All,

I having problem in converting the object from dropdown menu. I have seen the example in UI section. however, it did the same and I got the error message "Error selecting object". The drop menu listed all account types but when i click submit button, i got that error message. Looks like the converter is not running correctly.

I am currently using Hibernate, Seam 1.2.1 and AS 4.0.5.

here are my snippet code. 


  | 					<s:decorate id="typeDecorate" template="/edit.xhtml">
  | 						<ui:define name="label">Account Type:</ui:define>
  | 						<h:selectOneMenu id="type" value="#{account.accountType}">
  | 							<s:selectItems value="#{accountAction.accountTypeList}" 
  | 										   var="_accountType" 
  | 										   label="#{_accountType.title}" 
  | 										   noSelectionLabel="SELECT"/>
  |                                                        <s:convertEntity>
  | 						</h:selectOneMenu>
  | 					</s:decorate>
  | 

accountAction:

  | private List<AccountType> accountTypeList;
  | 
  | 	public List<AccountType> getAccountTypeList() throws Exception {
  | 		return this.accountTypeList;
  | 	}
  | 	
  | 	public void setAccountTypeList(List<AccountType> accountTypeList) {
  | 		this.accountTypeList = accountTypeList;
  | 	}

AccountType:


  | 
  | @Entity
  | @Name("accountType")
  | @Table(name = "accounttype")
  | public class AccountType implements java.io.Serializable {
  | 
  | 	private long id;
  | 
  | 	private String title;
  | 
  | 	private AccountClassification accountClassification;
  | 
  | 	private Set<Account> accounts = new HashSet<Account>(0);
  | 
  | 	private Set<BusinessType> businessTypes = new HashSet<BusinessType>(0);
  | 
  | 	public AccountType() {
  | 	}
  | 
  | 	public AccountType(String title) {
  | 		this.title = title;
  | 	}
  | 
  | 	public AccountType(String title,
  | 			AccountClassification accountClassification, Set<Account> accounts,
  | 			Set<BusinessType> businessTypes) {
  | 		this.title = title;
  | 		this.accountClassification = accountClassification;
  | 		this.accounts = accounts;
  | 		this.businessTypes = businessTypes;
  | 	}
  | 
  | 	@Id
  | 	@GeneratedValue
  | 	@Column(name = "atyp_id_pk", nullable = false)
  | 	public Long getId() {
  | 		return this.id;
  | 	}
  | 
  | 	public void setId(Long id) {
  | 		this.id = id;
  | 	}
  | 
  | 	@Column(name = "atyp_title", nullable = false)
  | 	public String getTitle() {
  | 		return this.title;
  | 	}
  | 
  | 	public void setTitle(String title) {
  | 		this.title = title;
  | 	}
  | 
  | 	@ManyToOne(fetch = FetchType.EAGER)
  | 	@Cascade( { CascadeType.LOCK })
  | 	@JoinColumn(name = "atyp_accountclassification_id_fk")
  | 	public AccountClassification getAccountClassification() {
  | 		return this.accountClassification;
  | 	}
  | 
  | 	public void setAccountClassification(
  | 			AccountClassification accountClassification) {
  | 		this.accountClassification = accountClassification;
  | 	}
  | 
  | 	@OneToMany(fetch = FetchType.LAZY, mappedBy = "accountType")
  | 	@Cascade( { CascadeType.ALL, CascadeType.DELETE_ORPHAN, CascadeType.LOCK })
  | 	public Set<Account> getAccounts() {
  | 		return this.accounts;
  | 	}
  | 
  | 	public void setAccounts(Set<Account> accounts) {
  | 		this.accounts = accounts;
  | 	}
  | 
  | 	@ManyToMany(fetch = FetchType.LAZY)
  | 	@JoinTable(name = "businesstype_accounttype", joinColumns = { @JoinColumn(name = "accounttypeid", updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "businesstypeid", nullable = false, updatable = false) })
  | 	@Cascade( { CascadeType.SAVE_UPDATE, CascadeType.LOCK })
  | 	public Set<BusinessType> getBusinessTypes() {
  | 		return this.businessTypes;
  | 	}
  | 
  | 	public void setBusinessTypes(Set<BusinessType> businessTypes) {
  | 		this.businessTypes = businessTypes;
  | 	}
  | 
  | }
  | 

component.xml:

  | <?xml version="1.0" encoding="UTF-8"?>
  | <components xmlns="http://jboss.com/products/seam/components"
  | 	xmlns:core="http://jboss.com/products/seam/core"
  | 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  | 	xmlns:security="http://jboss.com/products/seam/security"
  | 	xsi:schemaLocation="http://jboss.com/products/seam/core 
  |                http://jboss.com/products/seam/core-1.1.xsd
  |                http://jboss.com/products/seam/components 
  |                http://jboss.com/products/seam/components-1.1.xsd
  |                http://jboss.com/products/seam/security 
  |                http://jboss.com/products/seam/security-1.1.xsd">
  | 
  | 	<core:init debug="true" />
  | 
  | 	<!-- <core:manager conversation-timeout="120000" /> -->
  | 	<core:manager conversation-timeout="60000"
  | 		concurrent-request-timeout="500"
  | 		conversation-id-parameter="cid"
  | 		conversation-is-long-running-parameter="clr" />
  | 	<security:identity
  | 		authenticate-method="#{authenticator.authenticate}" />
  | 
  | 	<event type="org.jboss.seam.notLoggedIn">
  | 		<action expression="#{redirect.captureCurrentView}" />
  | 	</event>
  | 
  | 	<event type="org.jboss.seam.postAuthenticate">
  | 		<action expression="#{redirect.returnToCapturedView}" />
  | 	</event>
  | 	<!-- Bootstrap Hibernate  -->
  | 	<core:hibernate-session-factory />
  | 	<core:managed-hibernate-session name="mySession" auto-create="true" />
  | 
  | </components>
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4060212#4060212

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4060212



More information about the jboss-user mailing list