[jboss-user] [JBoss Seam] - Problem with DataModelSelection

olafgerwig do-not-reply at jboss.com
Mon Oct 16 06:28:34 EDT 2006


hi,
i try to implement a jsf datatable with seam @datamodel and @datamodelselection.

to generate the datamodel is no problem. but when a row is selected on the website, i cannot access to the values in @datamodelselection.

thanks for help

olaf

the javacode:

@Stateful
@Name("articleSelection")
public class ArticleSelectionBean implements ArticleSelection {
	
	@PersistenceContext
	private EntityManager em;
	
	@DataModel(value="searchArticle")
	private List  searchArticle;
	
	@DataModel(value="detailArticle")
	private Article detailArticle; 
	
	private Article detailArticleInternal; 
	
	private String searchString;
	
	@DataModel
	private List  selectetArticleParameter;
	
	@DataModelSelection(value="searchArticle")
	private Article selectedSearchArticle;
	

	@Factory("searchArticle")
	public String findOverview(){
		System.out.println("!!! - Suchstring:" + searchString);
		String searchPattern = searchString==null ? "%" : '%' + searchString.toLowerCase().replace('*', '%') + '%';
		searchArticle = em.createQuery("FROM Article art WHERE lower(art.artName) like :search").setParameter("search", searchPattern).getResultList();
		return "article_search_result";
		
	}
	
	public String findDetail(){
		System.out.println("Artikelnummer:" + getSelectedSearchArticle().getArtName());
		//detailArticle = em.merge(getSelectedSearchArticle());
		return "article_detail";
		
	}

	public String getSearchString() {
		return searchString;
	}

	public void setSearchString(String searchString) {
		this.searchString = searchString;
	}

	@Remove @Destroy
	public void destroy(){}
	
}

the Website:

<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
	  			xmlns:h="http://java.sun.com/jsf/html"
	  			xmlns:f="http://java.sun.com/jsf/core"
	  			xmlns:s="http://jboss.com/products/seam/taglib"
				template="template.xhtml">
				
	<!-- content -->
	<ui:define name="content">
		<h1>Suchresultat</h1>
			<h:dataTable columnClasses="firstColumn,secondColumn,thirdColumn"
						 headerClass="headerAlignment"
						 value="#{searchArticle}"
						 var="art"
						 rendered="#{searchArticle.rowCount>0}">
				<h:column>
					<f:facet name="header">Artikelbild</f:facet><h:graphicImage value="/img/article/thumbnails/#{art.artPicture}"/> 
				</h:column>
				<h:column>
					<f:facet name="header">Artikeltitel</f:facet>#{art.artName}
				</h:column>
				<h:column>
					<f:facet name="header">ArtikelPreis</f:facet>#{art.artSalesPrice}
				</h:column>
				<h:column>
					<f:facet name="header">Artikeldetail</f:facet><s:link value="Artikel Bestellen" action="#{articleSelection.findDetail}"/>
				</h:column>
			</h:dataTable>
	</ui:define>
</ui:composition>

the exception:

exception 

javax.servlet.ServletException: Exception while invoking expression #{articleSelection.findDetail}
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:121)
	org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:30)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

javax.faces.el.EvaluationException: Exception while invoking expression #{articleSelection.findDetail}
	org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:153)
	org.jboss.seam.core.Pages.callAction(Pages.java:212)
	org.jboss.seam.jsf.AbstractSeamPhaseListener.callPageActions(AbstractSeamPhaseListener.java:127)
	org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:98)
	org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:50)
	org.apache.myfaces.lifecycle.LifecycleImpl.informPhaseListenersBefore(LifecycleImpl.java:520)
	org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:342)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
	org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:30)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)



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

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



More information about the jboss-user mailing list