Hi,
what I am trying to do is to change the set of values in one <s:selectItems>
component after changing the value on a facelets page in another
<s:selectItems>. In other words speaking lets assume that we have two
<s:selectItems> components. In the first one there are branches and in the
second one there are categories. And now if I change the branch the categories
in the new selected branch should be loaded into the second <s:selectItems> .
The code is following:
| <h:form id="predefinedSkill" styleClass="edit">
|
| <h:outputLabel for="branch">
| #{messages.branch}
| </h:outputLabel>
|
| <s:decorate id="branchDecoration">
| <h:selectOneMenu value="#{branchHome.instance.name}">
| <s:selectItems value="#{branchList.resultList}" var="branch"
label="#{branch.name}" />
| <s:convertEntity/>
| <a:support event="onchange" reRender="categoryDecoration"
ajaxSingle="true" action="#{categoryHome.loadAllCategories()}"/>
| </h:selectOneMenu>
| </s:decorate>
|
|
| <h:outputLabel for="category">
| #{messages.category}
| </h:outputLabel>
|
| <s:decorate id="categoryDecoration">
| <h:selectOneMenu value="#{categoryHome.instance.name}" >
| <s:selectItems value="#{categoryHome.categoryList}" var="category"
label="#{category.name}" />
| <s:convertEntity/>
| </h:selectOneMenu>
| </s:decorate>
|
| </h:form>
|
But when I change the branch I get the error:
| INFO [lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not
have been displayed.
| sourceId=predefinedSkill:branchDecoration:j_id29[severity=(ERROR 2),
summary=(/specialist/spec_skills.xhtml @76,85
value="#{branchHome.instance.name}": java.lang.IllegalArgumentException:
argument type mismatch), detail=(/specialist/spec_skills.xhtml @76,85
value="#{branchHome.instance.name}": java.lang.IllegalArgumentException:
argument type mismatch)]
|
|
If the Branch Entity has additionally constraints on length i.e.
| @Column(name = "NAME", length = 100)
| @Length(max = 100)
| public String getName() {
| return this.name;
| }
|
I get the following error:
| INFO [lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not
have been displayed.
| sourceId=predefinedSkill:branchDecoration:j_id28[severity=(ERROR 2),
summary=(length must be between 0 and 100), detail=(length must be between 0
and 100)]
| sourceId=predefinedSkill:predefinedSkillDecoration:j_id37[severity=(ERROR
2), summary=(length must be between 0 and 100), detail=(length must be between
0 and 100)]
|
In both cases the method categoryHome.loadAllCategories() [I don't use branchId
as a parameter in this method for the simplicity reason] is not invoked! But if
I invoke it from the simple <h:input> component:
| <h:form id="predefinedSkill" styleClass="edit">
|
| <h:inputText value="TEST">
| <a:support event="onchange" reRender="categoryDecoration"
ajaxSingle="true" action="#{categoryHome.loadAllCategories()}"/>
| </h:inputText>
|
| <h:outputLabel for="branch">
| #{messages.branch}
| </h:outputLabel>
|
| <s:decorate id="branchDecoration">
| <h:selectOneMenu value="#{branchHome.instance.name}">
| <s:selectItems value="#{branchList.resultList}" var="branch"
label="#{branch.name}" />
| <s:convertEntity/>
| <a:support event="onchange" reRender="categoryDecoration"
ajaxSingle="true" action="#{categoryHome.loadAllCategories()}"/>
| </h:selectOneMenu>
| </s:decorate>
|
|
| <h:outputLabel for="category">
| #{messages.category}
| </h:outputLabel>
|
| <s:decorate id="categoryDecoration">
| <h:selectOneMenu value="#{categoryHome.instance.name}" >
| <s:selectItems value="#{categoryHome.categoryList}" var="category"
label="#{category.name}" />
| <s:convertEntity/>
| </h:selectOneMenu>
| </s:decorate>
|
| </h:form>
|
everything works fine. Could anybody explain me why there is such a problem
with <s:selectItems> and what are possible solutions for that.
Thanks for help in advance.
(I use Seam 2 CR1 + JBoss AS 4.2.0)
Best regards,
jquery
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4086513#4086513
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4086513
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user