[jboss-user] [JBoss Seam] - Parameters and @Factory
amorfis
do-not-reply at jboss.com
Thu Dec 20 18:25:19 EST 2007
Hi,
This is something I made based on "blog" example from seam 2.0.0GA (the one I use).
I have such component in my app:
@Name("search")
| public class SearchBean {
|
| private String province;
|
| private String category;
|
| @Factory("searchResults")
| public List<Article> search() throws InkaSearchException {
| //get articles based on province and category.
| }
|
| public String getProvince() {
| return province;
| }
|
| public void setProvince(String province) {
| this.province = province;
| }
|
| public String getCategory() {
| return category;
| }
|
| public void setCategory(String category) {
| this.category = category;
| }
|
| }
search.jsp page looks like this:
<h:form>
| <h:selectOneMenu value="#{search.category}">
| <s:selectItems var="category" value="#{categories}"/>
| </h:selectOneMenu>
| <h:selectOneMenu value="#{search.province}">
| <s:selectItems var="province" value="#{provinces}"/>
| </h:selectOneMenu>
| <h:commandButton value="Szukaj" action="search"/>
| </h:form>
| <h:dataTable var="art" value="#{searchResults}">
| <!-- display search results -->
| </h:dataTable>
And this is pages.xml file fragment:
<page view-id="/search.jsp">
| <param name="category" value="#{search.category}"/>
| <param name="province" value="#{search.province}"/>
| </page>
All this behaves strange. When I enter search.jsp page for the first time, searchResults are just initialized and it's ok. But then I set e.g. category to A, and province to B, and hit the button. In debug I can see _first_ factory method is called, and retrieves articles based on still null province and category, _after_this_ province is set to B and category to A. If I change category and province again, lets say to C and D, and hit the button again I can see such actions in debug:
1. category and province set to A and B (old values)
2. factory method called
3. category and province set to C and D.
Why it happens? Why parameters are not set before calling factory method?
Best regards
Pawel Stawicki
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4114832#4114832
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4114832
More information about the jboss-user
mailing list