Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/02/2012, 09:31
huaymas
 
Fecha de Ingreso: marzo-2009
Mensajes: 31
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Consulta Java Server Faces 2.0

|Hola gente como estan, tengo una consulta, estoy haciendo un sistemita con Jsf 2.0 Hibernate, RichFaces 4, todo en eclipse, pero tengo un problema a la hora de ahcer un alta de una tabla, les muestro el bean y el xhtml

Bean
Código:
package org.controlf.java.jsf.p1.model.domain;

import java.io.Serializable;
import java.util.Date;

public class Paciente extends BaseDominio implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = -3891274376800783333L;
	private Integer pacienteId;
	private Integer dni;
	private String nombre;
	private Date fechaNacimiento;
	private Integer numeroHc;
	private ObraSocial obraSocial;
	public Paciente(Integer pacienteId, Integer dni, String nombre, Date fechaNacimiento, Integer numeroHc, ObraSocial obraSocial) {
		this.pacienteId = pacienteId;
		this.dni = dni;
		this.nombre = nombre;
		this.fechaNacimiento = fechaNacimiento;
		this.numeroHc = numeroHc;
		this.obraSocial = obraSocial;
	}
	public Paciente() {
	}
	public Integer getPacienteId() {
		return pacienteId;
	}
	public void setPacienteId(Integer pacienteId) {
		this.pacienteId = pacienteId;
	}
	public Integer getDni() {
		return dni;
	}
	public void setDni(Integer dni) {
		this.dni = dni;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public Date getFechaNacimiento() {
		return fechaNacimiento;
	}
	public void setFechaNacimiento(Date fechaNacimiento) {
		this.fechaNacimiento = fechaNacimiento;
	}
	public Integer getNumeroHc() {
		return numeroHc;
	}
	public void setNumeroHc(Integer numeroHc) {
		this.numeroHc = numeroHc;
	}
	public ObraSocial getObraSocial() {
		return obraSocial;
	}
	public void setObraSocial(ObraSocial obraSocial) {
		this.obraSocial = obraSocial;
	}
	
}
El xhtml
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"> 

<h:head></h:head> 
<h:body>
    <ui:composition template="/templates/masterLayout.xhtml">
		<ui:define name="windowTitle">
	Reservas on line - Turnos
</ui:define>
		<ui:define name="funciones">
			<ui:include src="/sections/common/funciones.xhtml" />
		</ui:define>
		<ui:define name="content">
			<div class="article">
				<h2>
					<h:outputText value="Turno" />
				</h2>
				<h:form>
					<rich:panel header="Crear" id="panel">
						<h:panelGrid columns="3" width="100%">

							<h:outputText id="labelPaciente" value="Paciente" />
							<rich:select id="inputPaciente" defaultLabel="Selecciona un Paciente"
								value="#{turnosController.turno.paciente.pacienteId}" required="true" label="Paciente"
								style="width: 208px; ">
								<f:selectItems value="#{selectOneLists.pacientes}"
									var="paciente" itemLabel="#{paciente.nombre}"
									itemValue="#{paciente.pacienteId}"></f:selectItems>
							</rich:select>
							<rich:message for="inputPaciente"/>
							

							<h:outputText id="labelProfesional" value="Profesional" />
							<rich:select id="inputProfesionales" defaultLabel="Selecciona un Profesional"
								value="#{turnosController.turno.profesional.profesionalId}" required="true" label="Profesional"
								style="width: 208px; ">
								<f:selectItems value="#{selectOneLists.profesionales}"
									var="profesional" itemLabel="#{profesional.nombre}"
									itemValue="#{profesional.profesionalId}"></f:selectItems>
							</rich:select>
							<rich:message for="inputProfesionales"/>

							<h:outputText id="labelFechaTurno"
								value="Fecha de Turno" />
							<rich:calendar id="fechaTurno"
								value="#{turnosController.turno.fechaTurno}"
								required="true"
								requiredMessage="La fecha es requerida"
								style="width: 208px;" datePattern="dd/MM/yyyy">
							</rich:calendar>

							<rich:message for="fechaTurno"/>

							<h:outputText id="labelEstado" value="Estado" />
							<h:inputText id="estado"
								value="#{turnosController.turno.estado}"
								label="Estado" required="true"
								style="width: 208px; ">
								<f:validateLength minimum="5" maximum="12" />
							</h:inputText>
							<rich:message for="estado"/>

							<a4j:commandButton value="Aceptar" action="#{turnosController.crear(turnosController.turno)}" execute="@form">
							</a4j:commandButton>		

						</h:panelGrid>
					</rich:panel>
				</h:form>
			</div>
		</ui:define>
	</ui:composition>
</h:body> 
</html>
El problema es que al ahcer aceptar para cargar los datos en la base de datos me da este error en los dos combos,

Código:
22/02/2012 12:15:13 org.richfaces.context.ExtendedPartialViewContextImpl processPartialExecutePhase
GRAVE: /views/turnoCreate.xhtml @30,32 value="#{turnosController.turno.paciente.pacienteId}": Objetivo inalcanzable, 'paciente' devolvió nulo
javax.el.PropertyNotFoundException: /views/turnoCreate.xhtml @30,32 value="#{turnosController.turno.paciente.pacienteId}": Objetivo inalcanzable, 'paciente' devolvió nulo
	at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
	at org.richfaces.component.util.InputUtils.findConverter(InputUtils.java:123)
	at org.richfaces.component.util.InputUtils$1.getConverterByProperty(InputUtils.java:56)
	at org.richfaces.component.util.InputUtils.getConvertedValue(InputUtils.java:148)
	at org.richfaces.component.util.InputUtils.getConvertedValue(InputUtils.java:137)
	at org.richfaces.renderkit.InputRendererBase.getConvertedValue(InputRendererBase.java:50)
	at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1028)
	at javax.faces.component.UIInput.validate(UIInput.java:958)
	at javax.faces.component.UIInput.executeValidate(UIInput.java:1209)
	at javax.faces.component.UIInput.processValidators(UIInput.java:698)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
	at javax.faces.component.UIForm.processValidators(UIForm.java:244)
	at org.richfaces.context.PartialViewExecuteVisitCallback.visit(PartialViewExecuteVisitCallback.java:55)
	at org.richfaces.context.BaseExtendedVisitContext.invokeVisitCallback(BaseExtendedVisitContext.java:321)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:1507)
	at javax.faces.component.UIForm.visitTree(UIForm.java:335)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:1518)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:1518)
	at org.richfaces.context.ExtendedPartialViewContextImpl.executeComponents(ExtendedPartialViewContextImpl.java:237)
	at org.richfaces.context.ExtendedPartialViewContextImpl.processPartialExecutePhase(ExtendedPartialViewContextImpl.java:217)
	at org.richfaces.context.ExtendedPartialViewContextImpl.processPartial(ExtendedPartialViewContextImpl.java:196)
	at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1163)
	at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:508)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Espero me puedan dar una mano, muchas gracias.