[jboss-user] [JBoss Seam] - Rare pagination problem

juan_uy do-not-reply at jboss.com
Wed Sep 13 00:08:06 EDT 2006


Hi all,

I'm facing a rare problem using the Pagination code from the Code Generated by the JBoss Eclipse IDE CRUD reverse eng. (I have manualy hardcoded to understand the code too). Here is the explaination of the code, when I load the page for the first time, the page load the first ten rows, but when I click the next button, the page shows the same rows, and I press N times the next button again until the last page show, and in this case the page show the rows correctly. Similar problem I face when I do previous, in the last page when I press previous button, the page load the N-1 page rows correctly, but when I click previous button again the page shown the same rows of the N-1 page forever. 

I have debuged the code, and I have noticed that the Code loads the corrects rows for the list, but when the results is rendered show the firsts rows.

I have used: 
- Seam 1.0.1 GA with Sun JSF 1.2 RI and Facelets 1.1.14 (FaceletViewHandler)
- Seam 1.0.1 GA with MyFaces and Facelets 1.1.14 (FaceletViewHandler)
- Seam 20060912 Build with MyFaces and Facelets 1.1.14. (With the SeamFaceletViewHandler and FaceletViewHandler)

The code is the same as the Code of the Code Generator (Plus DRY principles using generics) 


  | 
  | @Name("groupFinder")
  | @Stateful
  | @Scope(ScopeType.SESSION)
  | @Interceptors(SeamInterceptor.class)
  | public class GroupFinderBean extends GenericFinderBean<Group> implements GroupFinder {
  | 
  | 	public GroupFinderBean() {
  | 		super(new Group());
  | 	}
  | 
  | 	@DataModel
  | 	private List<Group> groupList;
  | 
  | 	@DataModelSelection
  | 	private Group selectedGroup;
  | 
  | 	@SuppressWarnings("unchecked")
  | 	protected StringBuffer buildQuery(Map<String, Object> parameters) {
  | 		StringBuffer queryString = new StringBuffer();
  | 
  | 		if (example != null && example.getName() != null && example.getName().length() > 0) {
  | 
  | 			Integer number = null;
  | 
  | 			// Verify if I can convert te name to a number
  | 			try {
  | 				number = new Integer(example.getName());
  | 			} catch (NumberFormatException ex) {
  | 			}
  | 
  | 			// Build the query
  | 			if (number == null) {
  | 				queryString.append(" or group.name like :name");
  | 				parameters.put("name", '%' + example.getName() + '%');
  | 
  | 				queryString.append(" or group.description like :description");
  | 				parameters.put("description", '%' + example.getName() + '%');
  | 			} else {
  | 				queryString.append(" or group.id = :id");
  | 				parameters.put("id", number);
  | 			}
  | 
  | 		}
  | 
  | 		if (queryString.length() == 0) {
  | 			queryString.append("select group from Group group");
  | 		} else {
  | 			queryString.delete(0, 3).insert(0, "select group from Group group where");
  | 		}
  | 
  | 		if (order != null) {
  | 			queryString.append(" order by group.").append(order);
  | 			if (descending)
  | 				queryString.append(" desc");
  | 		}
  | 
  | 		return queryString;
  | 	}
  | 
  | 	@Override
  | 	protected List<Group> getList() {
  | 		return groupList;
  | 	}
  | 
  | 	@Override
  | 	protected Group getSelectedItem() {
  | 		return selectedGroup;
  | 	}
  | 
  | 	@Override
  | 	protected Group newInstance() {
  | 		return new Group();
  | 	}
  | 
  | 	@Override
  | 	protected void setList(List<Group> list) {
  | 		this.groupList = list;
  | 	}
  | 
  | }
  | 
  | 

The facelet-config for the navigation (I have used with and without redirect) 

	<navigation-rule>
  |         <navigation-case>
  |             <from-outcome>editGroup</from-outcome>
  |             <to-view-id>/modules/system/groups/editGroup.seam</to-view-id>
  |             <redirect/>
  |         </navigation-case>
  |         <navigation-case>
  |             <from-outcome>selectGroup</from-outcome>
  |             <to-view-id>/modules/system/groups/findGroup.seam</to-view-id>
  |             <redirect/>
  |         </navigation-case>
  |         <navigation-case>
  |             <from-outcome>viewGroup</from-outcome>
  |             <to-view-id>/modules/system/groups/viewGroup.seam</to-view-id>
  |             <redirect/>
  |         </navigation-case>        
  |         <navigation-case>
  |             <from-outcome>findGroup</from-outcome>
  |             <to-view-id>/modules/system/groups/findGroup.seam</to-view-id>
  |             <redirect/>
  |         </navigation-case>
  |     </navigation-rule>

I'm sure that I forgot a stupid thing, but I really in trouble for days...and I don't have found the solution. :S

Any Ideas? ;)

Thx in adv.

juan. 
 

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

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



More information about the jboss-user mailing list