İyi günler...
Jsf yeni geçtim ve internette bulduğum videolarla öğrenmeye çalışıyorum fakat takıldığım bir yer var... ArrayList ile datatableme değerler atıp bu değerleri buton ile methoda yollayarak güncellemeye çalışıyorum fakat güncellediğim method yolladığım objenin eski değerlerini görüyor yeni değerlerini değil. Örneğin ;
JavaBeanSınıfım :
package com.filter;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import com.dao.StudentDao;
import com.entity.Student;
@ManagedBean
@RequestScoped
public class StudentAffairs {
Student student;
String message ;
List<Student> students;
public StudentAffairs(){
student = new Student();
}
@PostConstruct
public void pullStudents(){
students = new StudentDao().getAllStudents();
}
public void deleteStudent(Student student){
System.out.println("the delete method is working at moment");
this.message = new StudentDao().deleteStudent(student);
}
public void setUpdateStudent(Student student){
System.out.println("Working");
System.out.println(student.getName());
new StudentDao().updateStudent(student);
}
public void addStudent(){
System.out.println("the add method is working at moment");
this.message = new StudentDao().addStudent(this.student);
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public void studentVisible(Student student){
System.out.println("the visible method is working at moment");
student.setUpdateVisible(true);
}
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
}
Jsf Sayfam ;
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"><h:head> <h:outputtext value="Öğrenci İşleri"/> <h:outputstylesheet library="css" name="/css/common-style.css"/> </h:head> <h:body>
<div id="page">
<div id="form">
<h:form>
<h:panelGrid columns="2">
<h:outputText value="Ad : " />
<h:inputText value="#{studentAffairs.student.name}" />
<h:outputText value="Okul numarası : " />
<h:inputText value="#{studentAffairs.student.school_ID}" />
<h:outputText value="Puan : " />
<h:inputText value="#{studentAffairs.student.grade}" />
<h:commandButton action="#{studentAffairs.addStudent()}" value="Kaydet" />
</h:panelGrid>
<h:outputText value="#{studentAffairs.message}" />
</h:form>
</div>
<div id="table">
<h:form>
<h:dataTable value="#{studentAffairs.students}" var="student">
<h:column>
<f:facet name="header"> Ad </f:facet>
<h:outputText value="#{student.name}" rendered="#{!student.updateVisible}" />
<h:inputText value="#{student.name}" rendered="#{student.updateVisible}" />
</h:column>
<h:column>
<f:facet name="header"> Okul Numarası </f:facet>
<h:outputText value="#{student.school_ID}" rendered="#{!student.updateVisible}" />
<h:inputText value="#{student.school_ID}" rendered="#{student.updateVisible}" />
</h:column>
<h:column>
<f:facet name="header"> Not </f:facet>
<h:outputText value="#{student.grade}" rendered="#{!student.updateVisible}" />
<h:inputText value="#{student.grade}" rendered="#{student.updateVisible}" />
</h:column>
<h:column>
<f:facet name="header"> Güncelle </f:facet>
<h:commandButton action="#{studentAffairs.studentVisible(student)}" value="Güncelle" rendered="#{!student.updateVisible}"/>
</h:column>
<h:column>
<f:facet name="header"> Sil </f:facet>
<h:commandButton action="#{studentAffairs.deleteStudent(student)}" value="Sil" rendered="#{!student.updateVisible}"/>
</h:column>
<h:column>
<f:facet name="header">Güncelle2</f:facet>
<h:commandButton action="#{studentAffairs.setUpdateStudent(student)}" value="Update" />
</h:column>
</h:dataTable>
</h:form>
</div>
</div>
</h:body> </html>
ve Student Class ;
package com.entity;
public class Student {
int id;
int grade;
int school_ID;
String name;
boolean updateVisible = false;
public Student(){
System.out.println("worked cunstructer");
}
public Student(int id, int grade, int school_ID, String name) {
System.out.println("work cunstructer");
this.id = id;
this.grade = grade;
this.school_ID = school_ID;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public int getSchool_ID() {
return school_ID;
}
public void setSchool_ID(int school_ID) {
this.school_ID = school_ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isUpdateVisible() {
return updateVisible;
}
public void setUpdateVisible(boolean updateVisible) {
this.updateVisible = updateVisible;
}
}
dediğim gibi serverde inputtextime yeni değeri yazım yollayınca tekrar eski değeri methoda gönderiyor.
setUpdateStudent methodumda gönderdiğim 'canan' isimli objemin ismini değiştirerek 'canan can' yaptım ama test etmek amaclı cıktısını aldım ve çıktı ;
hala eski 'canan' isimli objeyi görüyor
Lütfen yardım edin...!