[jboss-user] [JBoss Seam] - In attribute requires value for component

taprogge do-not-reply at jboss.com
Fri Aug 4 07:26:18 EDT 2006


Hi!
I am totally confused...
I am working with an existing Seam application running inside JBoss Portal (JBoss 4.0.4.GA, EJB3 rc8, Portal 2.4.0.CR3) with the MyFacesGenericPortlet.
All existing components work.
Now I tried to add a new component and get said error.
I have stripped it down in trying to find the cause, but had no luck.
Perhaps one of you can tell me what I am doing wrong.

This is my POJO to hold the entered information. Even scoping it "SESSION" did not make any difference.


  | @Name("userinput")
  | @Scope(SESSION)
  | public class UserInput {
  | 
  | 	private String username;
  | 	private String password;
  | 	
  | 	public String getPassword() {
  | 		return password;
  | 	}
  | 	public void setPassword(String aPassword) {
  | 		this.password = aPassword;
  | 	}
  | 	public String getUsername() {
  | 		return username;
  | 	}
  | 	public void setUsername(String aUsername) {
  | 		this.username = aUsername;
  | 	}
  | }
  | 

This is my SessionBean:


  | @Stateful
  | @Conversational(ifNotBegunOutcome = Outcome.REDISPLAY)
  | @Scope(CONVERSATION)
  | @Name("usercreate")
  | public class UserActionBean implements UserAction {
  | 
  | 	private static Logger logger = Logger.getLogger(UserActionBean.class);
  | 	
  | 	@PersistenceContext(type = EXTENDED)
  | 	private EntityManager em;
  | 	
  | 	@In(create = true)
  | 	private UserInput theUser;
  | 	
  | 	@Begin
  | 	public String beginStuff() {
  | 		logger.info("begin called");
  | 		logger.info("Data so far: username="
  |                 + theUser.getUsername());
  | 		return Outcome.REDISPLAY;
  | 	}
  | 	
  | 	@Remove
  | 	@Destroy
  | 	public void destroy() { }
  | }
  | 

And this is the jsp I use as default view for the portlet:


  | <f:view>
  | <h:form>
  | <table border="0">
  | 	<tr>
  | 		<td align='left'>username:</td>
  | 		<td><h:inputText id="username" 
  |                         value="#{userinput.username}"
  |                         required="true" />
  |                 <h:message style="color:red" for="username" /></td>
  | 	</tr>
  | 	<tr>
  | 		<td align='left'>password:</td>
  | 		<td><h:inputText id="password" 
  |                         value="#{userinput.password}"
  |                         required="true" />
  |                 <h:message style="color:red" for="password" /></td>
  | 	</tr>
  | 	<tr>
  | 		<td height='60' align='left'>
  |                       <h:commandButton type="submit" value="create user"
  | 			action="#{usercreate.beginStuff}" /></td>
  | 		<td align="right"><input type="reset" value="reset"></td>
  | 	</tr>
  | </table>
  | <h:messages style="color:red" />
  | </h:form>
  | </f:view>
  | 

Now, entering no information at all results (correctly) in "required" messages to be displayed for each field.
Entering any data and hitting the button results in a

  | org.jboss.seam.RequiredException: In attribute requires value for component: usercreate.theUser
  | 
being thrown.

Any thoughts?

Regards, Phil

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

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



More information about the jboss-user mailing list