[jboss-user] [JBoss Seam] - javax.el.PropertyNotFoundException

tkuchheuser do-not-reply at jboss.com
Fri Dec 28 07:32:04 EST 2007


Hello everyone,

i've got a problem with some code (mainly copied from the booking example).
I use Jboss AS 4.2.2 with SEAM 2.0.0.
The Booking-Example works fine.

However my own page pr_overview.xhtml:


  | <ui:composition xmlns="http://www.w3.org/1999/xhtml"
  | 	xmlns:s="http://jboss.com/products/seam/taglib"
  | 	xmlns:ui="http://java.sun.com/jsf/facelets"
  | 	xmlns:f="http://java.sun.com/jsf/core"
  | 	xmlns:h="http://java.sun.com/jsf/html"
  | 	xmlns:rich="http://richfaces.org/rich" template="layout/template.xhtml"
  | 	xmlns:a4j="http://richfaces.org/a4j">
  | 
  | 	<ui:define name="body">
  | 
  | 		<h:messages globalOnly="true" styleClass="message" />
  | 		<br />
  | 		<rich:panel>
  | 			<f:facet name="header">Probandenübersicht</f:facet>
  | 			<rich:panel>
  | 				<h:form id="searchCriteria">
  | 					<h:panelGrid columns="4">
  | 						<h:outputText value="Name: " />
  | 						<h:inputText id="searchStringName"
  | 							value="#{subjectSearch.searchString}" />
  | 					
  | 						<a4j:commandButton value="Suche" id="findSubjects"
  | 							action="#{subjectSearch.runQuery}" reRender="searchResults" />
  | 					</h:panelGrid>
  | 				</h:form>
  | 			</rich:panel>
  | 

with the backing bean: 



  | import java.util.List;
  | 
  | import javax.ejb.Remove;
  | import javax.ejb.Stateful;
  | import javax.persistence.EntityManager;
  | import javax.persistence.PersistenceContext;
  | 
  | import org.jboss.seam.ScopeType;
  | import org.jboss.seam.annotations.Destroy;
  | import org.jboss.seam.annotations.Logger;
  | import org.jboss.seam.annotations.Name;
  | import org.jboss.seam.annotations.Scope;
  | import org.jboss.seam.annotations.datamodel.DataModel;
  | 
  | import de.itecra.pdb.model.Proband;
  | 
  | @Stateful
  | @Name("subjectSearch")
  | @Scope(ScopeType.SESSION)
  | public class SubjectSearchAction implements SubjectSearch {
  | 
  | 	@Logger("SubjectSearch")
  | 	org.jboss.seam.log.Log log;
  | 
  | 	@PersistenceContext
  | 	private EntityManager em;
  | 
  | 	@DataModel
  | 	private List<Proband> listSubjectsResults;
  | 
  | 	/** SEARCH FIELDS */
  | 	private String searchString;
  | 
  | 	/** METHODS */
  | 	public void runQuery() {
  | 
  | 		listSubjectsResults = em.createQuery("FROM Proband").getResultList();
  | 		log.info("RunQuery");
  | 	}
  | 
  | 	/** GETTERS AND SETTERS */
  | 	public String getSearchString() {
  | 		return searchString;
  | 	}
  | 
  | 	public void setSearchString(String searchString) {
  | 		this.searchString = searchString;
  | 	}
  | 
  | 	/** COMMON METHODS */
  | 
  | 	@Remove
  | 	@Destroy
  | 	public void destroy() {
  | 	}
  | 
  | }
  | 
  | 

throws the exception:


anonymous wrote : 
  | javax.faces.FacesException: javax.el.PropertyNotFoundException: /pr_overview.xhtml @23,48 value="#{subjectSearch.searchString}": Property 'searchString' not found on type org.javassist.tmp.java.lang.Object_$$_javassist_0
  | 	at javax.faces.component.UIOutput.getValue(UIOutput.java:176)
  | 	at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:189)
  | 	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:320)
  | 	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
  | 	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
  | 	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)
  | 	at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
  | 	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
  | 	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
  | 	at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
  | 	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
  | 	at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)
  | 	at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)
  | 	at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:199)
  | 	at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:194)
  | 	at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)
  | 	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
  | 	at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)
  | 	at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)
  | 	at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:199)
  | 	at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:194)
  | 	at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)
  | 	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
  | 	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
  | 	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
  | 	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
  | 	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
  | 	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
  | 	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
  | 	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
  | 
  | [...]
  | 
  | 

However using the runQuery() Method and accesing listSubjectResults works fine:

  | <a4j:commandButton value="Suche" id="findSubjects"
  | 							action="#{subjectSearch.runQuery}" reRender="searchResults" />
  | 


  | <a4j:outputPanel id="searchResults">
  | 					<rich:dataTable id="subjects" value="#{listSubjectsResults}"
  | 						var="subject" rendered="#{listSubjectsResults.size>0}">
  | 						<rich:column>
  | 							<f:facet name="header">Nachname</f:facet>
  | 							#{subject.nachname}
  | 						</rich:column>
  | 						<rich:column>
  | 							<f:facet name="header">Vorname</f:facet>
  | 							#{subject.vorname}
  | 						</rich:column>
  | 						<rich:column>
  | 							<f:facet name="header">Geburtsdatum</f:facet>
  | 							<h:outputText value="#{subject.geburtsdatum}">
  | 								<s:convertDateTime pattern="DD.MM.yyyy" />
  | 							</h:outputText>
  | 						</rich:column>
  | 						<rich:column>
  | 							<f:facet name="header">Identifikation</f:facet>
  | 							#{subject.code_zahl}
  | 						</rich:column>
  | 						<rich:column>
  | 							<f:facet name="header">Aktion</f:facet>
  | 							<s:link value="Öffnen" id="openSubject" />
  | 							<!-- 
  | 							<s:link value="Untersuchung" />
  | 							<s:link value="Studie" />
  | 							-->
  | 						</rich:column>
  | 					</rich:dataTable>
  | 				</a4j:outputPanel>
  | 
  | 

Idea anyone?
Thanks for advice or links.


Timo



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

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




More information about the jboss-user mailing list