inputText dúvidas value

Bom dia tenho um formulário que já vem preenchido com dados de uma tabela X ex:

só que quero salvar este dados em outra tabela como faço a referência do value, para salvar estes dados na minha outra tabela?

Bom dia…

poderia ser mais explicita???

[]s,

Bom dia Marcelo é que tenho uma tabela com alguns dados que podem ser editados ao editar estes dados será carregado os dados no formulário so que estes dados dever ser salvos em uma tabela diferente so que não sei como referenciar estes dados ex:

[code]<h:form id=“formulario”>

    <p:growl id="message"  showDetail="false"  /> 
    
	 <h:inputHidden value="#{disciplinaController.disciplina.idDisciplina}" />
	 
	 <h:panelGrid columns="2">  	 
	 
	 	<h:outputLabel value="Curso:*" for="curso" /> 		 	 		 	    	 	
	 	<p:inputText disabled="true" value="#{materiaController.turma.ugrade.udefgrade.uperiodos.ucursos.nome}" size="50"/>    	 	
	
	 	<h:outputLabel value="Período Letivo:*" for="periodoletivo" />  		 	    	 	
	 	<p:inputText disabled="true" value="#{materiaController.turma.id.codperlet}" size="10"/>
	 	    		
		<h:outputLabel value="Turma:*" for="turma" />  		 	    	 	
	 	<p:inputText disabled="true" value="#{materiaController.turma.id.codtur}" size="20"/>	 
	
		<h:outputLabel value="Disciplina" for="disciplina" />  
		 <p:inputText disabled="true" value="#{materiaController.turma.ugrade.umaterias.materia}" size="50"/>
	 		 	
		<h:outputLabel value="Quantidade de Aulas:* " for="qtidadeaulas" />  
		<p:inputText disabled="true" value="#{materiaController.turma.ugrade.cargahoraria /20}" minFractionDigits="0" size="10"/>	
		 
		
		<h:outputLabel value="Quantidade de Aulas Práticas:" for="qtdadeAulasPraticas" />  
		<p:inputText value="#{disciplinaController.disciplina.qtdadeAulasPraticas}" id="qtdadeAulasPraticas" size="10"/>
		
		<h:outputLabel value="Quantidade de Aulas Teóricas:" for="qtdadeAulasTeoricas" />  
		<p:inputText value="#{disciplinaController.disciplina.qtdadeAulasTeoricas}" id="qtdadeAulasTeoricas" size="10"/>
		
		<h:outputLabel value="Laboratório" for="laboratorio" /> 		 	 		 	    	 	
	 	<p:selectOneMenu id="laboratorio" value="#{disciplinaController.disciplina.laboratorio.idLaboratorio}">
	 		<f:selectItem itemLabel="Selecione um Laboratório..." itemValue="" /> 
			<f:selectItems value="#{disciplinaController.laboratorios}"/>  
		</p:selectOneMenu>
		   	
		
		<h:outputText value="Aula Prática Externa:" />  	        
        <p:selectOneListbox id="aulaPraticaExterna" value="#{disciplinaController.disciplina.aulaPraticaExterna}">  
            <f:selectItem itemLabel="Sim" itemValue="1" />  
            <f:selectItem itemLabel="Não" itemValue="2" />  
    	</p:selectOneListbox>  
        	        	        
        <h:outputLabel value="Grupos Aulas Práticas:" for="gruposAulaPratica" />  
		<p:inputText value="#{disciplinaController.disciplina.gruposAulaPratica}" id="gruposAulaPratica" size="10"/>
        
        <h:outputLabel value="Quantidade Professores:" for="qtadeProfessores" />  
		<p:inputText value="#{disciplinaController.disciplina.qtdadeProfessores}" id="qtadeProfessores" size="10"/>
        
		<h:outputLabel value="Quantidade Total de Aulas Práticas:" for="qtdadeTotalAulasPraticas" />  
		<p:inputText value="#{disciplinaController.disciplina.qtdadeTotalAulasPraticas}" id="qtdadeTotalAulasPraticas" size="10"/>
	</h:panelGrid>
	
	<p:commandButton value="Salvar" 
		actionListener="#{disciplinaController.salvar}"
	 	update="@form"
	 	image="ui-icon ui-icon-disk"  />	
</h:form>[/code]

vê se eu entendi…

vc carrega o form com dados de uma tabela…e quando editar vai salvar em uma segunda tabela???

e isso??

vc está utilizando jpa ou jdbc???

[]s,

Olá Marcelo, é isso mesmo, desculpe a dificuldade de expressar o problema, estou utilizando jdbc, não sei como coloco no meu inputText pra salvar na outra tabela.

Olá Marcelo, é isso mesmo, desculpe a dificuldade de expressar o problema, estou utilizando jdbc, não sei como coloco no meu inputText pra salvar na outra tabela.

te mandei uma mensagem privada…

vc viu??

[]s

poste aqui, pois o problema dela pode ser de outro.

vc utiliza esse form para salvar dados em alguma tabela…???

ou vc utliza esse form somente para popular os dados de um select e depois salver em outra tabela??

Oiii Marcelo utilizo esse form para salvar dados na tabela.

ok…

então vc vai fazer o seguinte…

quando for novo vc salva em uma tabela e quando for editar salva em outra…

vc tem um bean na sua aplicação que tem um id…quando esse id estiver null ele é novo, logo vc salva ele na tabela 1, se esse id estiver populado vc salva na tabela 2

algo como

[code]if(entidade.getId() == null){

insert into tabela1(bla,bla,bla) values(?,?,?);

}
else{
insert into tabela2(bla,bla,bla)values(?,?,?);

}[/code]

Bom dia Marcelo só uma dúvida estou fazendo as consulta em criteria, como irei comparar campo formulário e atributos da tabela que irei salvar, tipo no meu metódo salvar é onde eu indicarei os campos que dever ser salvos naquela determinada tabela, como fazer a comparação? ex: esse campo salva nessa coluna e assim por diante…
Obrigada

ola…

vc poderia passar o seu controller e seu bean???

[]s,

Meu bean com os atributos:

[code]@Entity
@Table(name = “Disciplina”)
public class Disciplina implements Serializable{

private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name="idDisciplina", nullable=false)
private Short idDisciplina;

@Size(message="O campo Curso deve ter no máximo {max} caracteres",min = 0,max = 100)
@NotNull(message="O campo Curso não pode ser nulo.")
@NotEmpty(message="O campo Curso deve ser preenchido.")
@Column(name="curso", nullable=false,length = 100)
private String curso;

@Size(message="O campo PeriodoLetivo deve ter no máximo {max} caracteres",min = 0,max = 20)
@NotNull(message="O campo PeriodoLetivo não pode ser nulo.")
@NotEmpty(message="O campo PeriodoLetivo deve ser preenchido.")
@Column(name="periodoLetivo", nullable=false,length = 20)
private String periodoLetivo;

@Size(message="O campo Disciplina deve ter no máximo {max} caracteres",min = 0,max = 100)
@NotNull(message="O campo Disciplina não pode ser nulo.")
@NotEmpty(message="O campo Disciplina deve ser preenchido.")
@Column(name="disciplina", nullable=false,length = 100)
private String disciplina;

@Size(message="O campo Turma deve ter no máximo {max} caracteres",min = 0,max = 52)
@NotNull(message="O campo Turma não pode ser nulo.")
@NotEmpty(message="O campo Turma deve ser preenchido.")
@Column(name="turma", nullable=false,length = 52)
private String turma;

@Size(message="O campo CargaHoraria deve ter no máximo {max} caracteres",min = 0,max = 10)
@NotNull(message="O campo CargaHoraria não pode ser nulo.")
@NotEmpty(message="O campo CargaHoraria deve ser preenchido.")
@Column(name="cargaHoraria", nullable=false,length = 10)
private String cargaHoraria;

@NotNull(message="O campo QtdadeAulas não pode ser nulo.")
@Column(name="qtdadeAulas", nullable=false)
private Integer qtdadeAulas;

@NotNull(message="O campo QtdadeAulasTeoricas não pode ser nulo.")
@Column(name="qtdadeAulasTeoricas", nullable=false)
private Integer qtdadeAulasTeoricas;

@Column(name="qtdadeAulasPraticas", nullable=true)
private Integer qtdadeAulasPraticas;

@Size(message="O campo AulaPraticaExterna deve ter no máximo {max} caracteres",min = 0,max = 1)
@Column(name="aulaPraticaExterna", nullable=true,length = 1)
private String aulaPraticaExterna;

@Column(name="gruposAulaPratica", nullable=true)
private Integer gruposAulaPratica;

@Column(name="qtdadeProfessores", nullable=true)
private Integer qtdadeProfessores;

@Column(name="qtdadeTotalAulasPraticas", nullable=true)
private Integer qtdadeTotalAulasPraticas;

@OneToMany(fetch = FetchType.LAZY, mappedBy = "disciplina")
private List<Professor> professores;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
	@JoinColumn(name ="idLaboratorio" ,referencedColumnName ="idLaboratorio", nullable =false )})
@ForeignKey(name="FK_Disciplina_Laboratorio")
private Laboratorio laboratorio;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="curso", referencedColumnName="nome", insertable=false, updatable=false)
private Ucursos ucursos;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="disciplina", referencedColumnName="materia", insertable=false, updatable=false)
private Umaterias umaterias;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="cargaHoraria", referencedColumnName="grade", insertable=false, updatable=false)
private Ugrade ugrade;

public Ugrade getUgrade(){
    return ugrade;
}	

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "periodoLetivo", referencedColumnName = "codperlet",
								insertable = false, updatable = false),
@JoinColumn(name = "turma", referencedColumnName = "CODTUR",
insertable = false, updatable = false)})
	
private Umatturma umatturma;

public Umatturma getUmatturma(){
        return umatturma;
}[/code]

Pode se observar no final que faço o mapeamento dos atributos da tabela disciplina com a tabela externa.

Meu controlador:

[code]@ManagedBean
@ViewScoped
public class DisciplinaController {

private Disciplina disciplina;
private List disciplinas;
public List laboratorios;

@Autowired
private AbaSession abaSession;

private IDisciplinaApplication disciplinaApplication
= ApplicationFactory.getInstance().getDisciplinaApplication();

private ILaboratorioApplication laboratorioApplication
= ApplicationFactory.getInstance().getLaboratorioApplication();

public List getLaboratorios() {
if(laboratorios == null){
laboratorios = new ArrayList();
List uselectcursos = laboratorioApplication.listarLab();
for (Laboratorio laboratorio : uselectcursos) {
laboratorios.add(new SelectItem(laboratorio.getIdLaboratorio(), laboratorio.getDescricao()));
}
}
return laboratorios;
}

public void setLaboratorios(List<SelectItem> laboratorios) {
	this.laboratorios = laboratorios;
}  
public void salvar(){ 
Set<String> erros = disciplinaApplication.salvarDisciplina(disciplina); 
if(erros.isEmpty()){ 
	FacesContext.getCurrentInstance().addMessage(null, new  
            FacesMessage(FacesMessage.SEVERITY_INFO, "Disciplina salvo com sucesso.", null)); 
        novo(); 
      atualizarTabela(); 
   }else{ 
     FacesContext.getCurrentInstance().addMessage(null, new  
            FacesMessage(FacesMessage.SEVERITY_ERROR, 

erros.iterator().next(), null));
}

 }

public void salvarDisciplina() throws IOException{	
	
	Set<String> erros = disciplinaApplication.salvarDisciplina(disciplina);
	
	FacesContext.getCurrentInstance().addMessage(null, new  
            FacesMessage(FacesMessage.SEVERITY_INFO, "Disciplina salvo com sucesso.", null)); 
	
	if(erros.isEmpty()){
		FacesContext.getCurrentInstance()
			.getExternalContext()
			.redirect("index.jsf?id="+disciplina.getIdDisciplina());
		
		abaSession.setIdDisciplina(disciplina.getIdDisciplina());
	}

}


 public void novo(){ 
    this.setDisciplina(new Disciplina()); 
 } 
  
    
 public List<Disciplina> getDisciplinaSelectItem(){   
    return  disciplinaApplication.todos(); 
 } 
 public Disciplina getDisciplina() { 
   if(disciplina == null) 
     this.disciplina = new Disciplina(); 
   return disciplina; 
 } 

 public void setDisciplina(Disciplina disciplina) { 
   this.disciplina = disciplina; 
 } 

 public List<Disciplina> getDisciplinas() { 
   if(this.disciplinas == null) 
     atualizarTabela(); 
   return disciplinas; 
 } 

 private void atualizarTabela(){ 
   disciplinas = disciplinaApplication.todos(); 
 }

}
[/code]

Minha application onde fica o método salvardisciplina:

[code]public class DisciplinaApplication extends GenericApplication<Disciplina, Short>
implements IDisciplinaApplication {

@Override
public Set salvarDisciplina(Disciplina disciplina){
if(disciplina.getIdDisciplina() == null || disciplina.getIdDisciplina() == 0){
return super.inserir(disciplina);
}else{
return super.alterar(disciplina);
}
}
}[/code]

Meu formulário:

[code]<p:fieldset legend=“Cadastrar Disciplina”>
<h:form id=“formulario”>

    <p:growl id="message"  showDetail="false"  /> 
    
	 <h:inputHidden value="#{disciplinaController.disciplina.idDisciplina}" />
	 
	 <h:panelGrid columns="2">  	 
	 
	 	<h:outputLabel value="Curso:*" for="curso" /> 			 	 	 		 	    	 	
	 	<p:inputText disabled="true" value="#{materiaController.turma.ugrade.udefgrade.uperiodos.ucursos.nome}" size="50"/>    	 	
	
	 	<h:outputLabel value="Período Letivo:*" for="periodoletivo" />  		 	    	 	
	 	<p:inputText disabled="true" value="#{materiaController.turma.id.codperlet}" size="10"/>
	 	    		
		<h:outputLabel value="Turma:*" for="turma" />  		 	    	 	
	 	<p:inputText disabled="true" value="#{materiaController.turma.id.codtur}" size="20"/>	 
	
		<h:outputLabel value="Disciplina" for="disciplina" />  
		 <p:inputText disabled="true" value="#{materiaController.turma.ugrade.umaterias.materia}" size="50"/>
	 		 	
		<h:outputLabel value="Quantidade de Aulas:*" for="qtidadeaulas" />  
		<p:inputText disabled="true" value="#{materiaController.turma.ugrade.cargahoraria /20}" size="10">
			<f:convertNumber type="number" minFractionDigits="0" maxFractionDigits="2"/>
		</p:inputText>
		
		<h:outputLabel value="Quantidade de Aulas Teóricas:" for="qtdadeAulasTeoricas" />  
		<p:inputText value="#{disciplinaController.disciplina.qtdadeAulasTeoricas}" id="qtdadeAulasTeoricas" size="10"/>
		
		<h:outputLabel value="Quantidade de Aulas Práticas:" for="qtdadeAulasPraticas" />  
		<p:inputText value="#{disciplinaController.disciplina.qtdadeAulasPraticas}" id="qtdadeAulasPraticas" size="10"/>			
		
		<h:outputLabel value="Laboratório" for="laboratorio" /> 		 	 		 	    	 	
	 	<p:selectOneMenu id="laboratorio" value="#{disciplinaController.disciplina.laboratorio.idLaboratorio}">
	 		<f:selectItem itemLabel="Selecione um Laboratório..." itemValue="" /> 
			<f:selectItems value="#{disciplinaController.laboratorios}"/>  
		</p:selectOneMenu>
		   	
		
		<h:outputText value="Aula Prática Externa:" />  	        
        <p:selectOneListbox id="aulaPraticaExterna" value="#{disciplinaController.disciplina.aulaPraticaExterna}">  
            <f:selectItem itemLabel="Sim" itemValue="1" />  
            <f:selectItem itemLabel="Não" itemValue="2" />  
    	</p:selectOneListbox>  
        	        	        
        <h:outputLabel value="Grupos Aulas Práticas:" for="gruposAulaPratica" />  
		<p:inputText value="#{disciplinaController.disciplina.gruposAulaPratica}" id="gruposAulaPratica" size="10"/>
        
        <h:outputLabel value="Quantidade Professores:" for="qtadeProfessores" />  
		<p:inputText value="#{disciplinaController.disciplina.qtdadeProfessores}" id="qtadeProfessores" size="10"/>
        
		<h:outputLabel value="Quantidade Total de Aulas Práticas:" for="qtdadeTotalAulasPraticas" />  
		<p:inputText value="#{disciplinaController.disciplina.qtdadeTotalAulasPraticas}" id="qtdadeTotalAulasPraticas" size="10"/>
	</h:panelGrid>
	
	<p:commandButton value="Salvar" 
		actionListener="#{disciplinaController.salvar}"
	 	update="@form"
	 	image="ui-icon ui-icon-disk"  />	
</h:form>

</p:fieldset> [/code]

Teria que fazer a implentação no metódo salvar na application isso mesmo? Mais como?

vamos do inicio…vc está usando hibernate…

que erro está dando, ta gravando na tabela???

[]s,

Oiii Marcelo tudo bem? Não está salvando em nenhum lugar porque não sei como fazer para salvar.

Um exemplo tenho este campo Curso ele já vem automaticamente preenchido de outra tabela:

<h:outputLabel value="Curso:*" for="curso" /> <p:inputText disabled="true" value="#{materiaController.turma.ugrade.udefgrade.uperiodos.ucursos.nome}" size="50"/>

O que quero é salvar estes valores já preenchidos e buscados de outra tabela, para serem salvos em outra tabela, só que não sei como falar isso no metódo salvar.

ahhhhhhhhhhhhhhh acho que entendi oque vc quer…

esse campo é um combo neh??

por exemplo vc tem um combo no seu formulario que tem curso, esse combo e populado por uma outra tabela,

na tabela disciplina vc tem uma coluna que referencia esse curso certo???

se tiver acredito que seja a primary key da tabela curso, logo no seu formulario onde vc carrega esse combo de cursos quando vc escolhe o curso ele deve setar no bean da disciplina o codigo desse curso,

pq na tabela curso se relaciona com a tabela disciplina por essa coluna

Isso isso é como se eu tivesse dados de outra tabela que não é pk e quisesse salvar em outra, não sei se é necessário indicar isso no formulário ou no próprio metódo salvar, como vou falar pro metódo salvar naquela outra tabela?

então…

a tabela disciplina se relaciona com Curso certo???

a pk do curso está como fk na disciplina certo???

se é pk logo do tipo inteiro certo??

vc está usando hibernate??

[]s

Isso Marcelo, só que não sei como construir o metódo ou como identificar outro value no formulário pra salvar na tabela disciplina…