In attribute requires value for component
taprogge Aug 4, 2006 7:26 AMHi!
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