Hi. I want to make list filtering. On the page i have some dataTable like | <rich:dataTable var="action" value="#{actionList.resultList}" | rendered="#{not empty actionList}" | rowClasses="rvgRowOne,rvgRowTwo" id="actionTable"> | For filtering i have selectOneRadio and commandButton like
| <h:selectOneRadio value="#{actionManager.actionFilter}"> | <s:convertEnum /> | <s:enumItem enumValue="ALL" label="All" /> | <s:enumItem enumValue="SENT" label="Sent" /> | <s:enumItem enumValue="NOT_SENT" label="Not sent" /> | </h:selectOneRadio> | <h:commandButton action="#{actionManager.filterActions}" value="Filter"/> | For getting the list of actions i use entity query | @Name("actionList") | public class ActionQuery extends EntityQuery { | | private static final long serialVersionUID = 4880758385999261380L; | | private static final String[] RESTRICTIONS_ALL = { "" }; | private static final String[] RESTRICTIONS_SENT = { "a.sent == 1" }; | private static final String[] RESTRICTIONS_NOT_SENT = { "a.sent == 0" }; | | @Logger private Log log; | | @In(required=false) | private ActionListFilter actionFilter; | | @In | private ActionManager actionManager; | | @Override | public String getEjbql() { | return "select a from Action a"; | } | | public List<String> getRestrictions() { | log.debug("filter bean: #0",actionManager.getActionFilter()); | log.debug("actionFilter: #0",actionFilter); | if (actionFilter== null || actionFilter.equals(ActionListFilter .ALL)){ | return new ArrayList<String>(0); | } | else if (actionFilter.equals(ActionListFilter .SENT)){ | return Arrays.asList(RESTRICTIONS_SENT); | } | else if (actionFilter.equals(ActionListFilter .NOT_SENT)){ | return Arrays.asList(RESTRICTIONS_NOT_SENT); | } | | | return new ArrayList<String>(0); | | } | | | | } | So as you can see above i building the restrictions according to option selected by user on the form. The problem is that the line | log.debug("actionFilter: #0",actionFilter); | return null, but later on the action the filter is not null (see bottom) So the query is executed before my bean method. I decided to get the value directly from bean but it is null. Here are the logs | 17:29:03,250 DEBUG [ActionQuery ] filter bean: null | 17:29:03,250 DEBUG [ActionQuery ] actionfilter: null | 17:29:03,250 DEBUG [ActionQuery ] filter bean: null | 17:29:03,250 DEBUG [ActionQuery ] actionfilter: null | 17:29:03,281 DEBUG [ActionManagerBean] actionfilter: SENT | For me the query is executed before form params gets updated. In bean the value is correct. Is this possible to create sth like this without using @Factory methods ?? (beacuse i this it should work in Factory... but may also not work)... Anyone had similar problem or maybe know the solution View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4043706#4043706 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4043706 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user