0
I 메인 제목에 나와있는 요소 나는이 오류를 사용하여 객체를 저장하려고 :저장하는 방법을 데이터 4.2.6 + Struts2 + 넷빈즈 8.0 + 톰캣 8.0.3.0
target is null for setProperty(null, "tiposClientesIdTipoCliente", [Ljava.lang.String;@2504d0cd)
우선 나는 최대 절전 모드 사용 입수이 Action 클래스가 있습니다
public class Cliente implements java.io.Serializable {
private Integer idCliente;
private int tiposClientesIdTipoCliente;
private String nombreCliente;
private int telefonoCliente;
public Cliente() {
}
public Cliente(int tiposClientesIdTipoCliente, String nombreCliente, int telefonoCliente) {
this.tiposClientesIdTipoCliente = tiposClientesIdTipoCliente;
this.nombreCliente = nombreCliente;
this.telefonoCliente = telefonoCliente;
}
public Integer getIdCliente() {
return this.idCliente;
}
public void setIdCliente(Integer idCliente) {
this.idCliente = idCliente;
}
public int getTiposClientesIdTipoCliente() {
return this.tiposClientesIdTipoCliente;
}
public void setTiposClientesIdTipoCliente(int tiposClientesIdTipoCliente) {
this.tiposClientesIdTipoCliente = tiposClientesIdTipoCliente;
}
public String getNombreCliente() {
return this.nombreCliente;
}
public void setNombreCliente(String nombreCliente) {
this.nombreCliente = nombreCliente;
}
public int getTelefonoCliente() {
return this.telefonoCliente;
}
public void setTelefonoCliente(int telefonoCliente) {
this.telefonoCliente = telefonoCliente;
}
}
둘째,이 내 DAO 인터페이스입니다 :
package dao;
import entities.Cliente;
import java.util.ArrayList;
public interface ClienteDAO {
public boolean agrego(Cliente cliente);
public boolean borrar(Cliente cliente);
public ArrayList<Cliente> listar();
}
셋째, 나는 이것을있어 내 DAO를 s의 구현 : 넷째
package dao;
import entities.Cliente;
import java.util.ArrayList;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class ClienteImpl implements ClienteDAO {
Transaction transaction = null;
Session session;
public boolean agrego(Cliente cliente) {
try
{
session = HibernateUtil.getSessionFactory().getCurrentSession();
transaction=session.beginTransaction();
//registrar o actualizar
session.saveOrUpdate(cliente);
transaction.commit();
return true;
}
catch(Exception e)
{
if(transaction!=null)
transaction.rollback();
return false;
}
}
public boolean borrar(Cliente cliente) {
try
{
session = HibernateUtil.getSessionFactory().getCurrentSession();
transaction=session.beginTransaction();
session.delete(cliente);
transaction.commit();
return true;
}
catch(Exception e)
{
if(transaction!=null)
transaction.rollback();
return false;
}
}
public ArrayList<Cliente> listar() {
try
{
Session session;
Transaction transaction;
session = HibernateUtil.getSessionFactory().getCurrentSession();
transaction=session.beginTransaction();
return (ArrayList<Cliente>)session.createQuery("from Cliente").list();
}
catch(Exception e)
{
return null;
}
}
}
, 이것은 내 컨트롤러 :
package controllers;
import com.opensymphony.xwork2.ModelDriven;
import dao.ClienteImpl;
import dao.ClienteDAO;
import entities.Cliente;
import java.util.ArrayList;
public class ClienteController implements ModelDriven<Cliente> {
Cliente cliente = new Cliente();//
ArrayList<Cliente> listaclientes = new ArrayList();
ClienteDAO clienteDAO;
String msg = "";
public ClienteController() {
clienteDAO = new ClienteImpl();
}
public Cliente getModel() {
return cliente;
}
public String agrego() {
clienteDAO.agrego(cliente);
listaclientes = clienteDAO.listar();
return "exito";
}
public String borrar() {
clienteDAO.borrar(cliente);
listaclientes = clienteDAO.listar();
return "exito";
}
public String listar() {
listaclientes = clienteDAO.listar();
return "exito";
}
public Cliente getDatos() {
return cliente;
}
public void setDatos(Cliente datos) {
this.cliente = datos;
}
public ArrayList<Cliente> getListaclientes() {
return listaclientes;
}
public String getMsg() {
return msg;
}
}
여섯째, 이것은 내가 새로운 오브젝트/데이터를 추가하는 데 사용하는 형태이다 :
<s:form action="agregaCliente">
<s:textfield label="Tipo" name="cliente.tiposClientesIdTipoCliente" />
<s:textfield label="Nombre" name="cliente.nombreCliente" />
<s:textfield label="Teléfono" name="cliente.telefonoCliente" />
<s:submit value="registrar/actualizar" />
</s:form>
및 마지막으로, 이것은 struts.xml 파일에서의 나의 액션이다 :
내가 누락 된 부분을 모르겠다 ... 동일한 DB에서 데이터를로드하고 표시 할 수 있지만 추가/업데이트하거나 삭제할 수 없다 ...
답장을 보내 주셔서 감사합니다. 나는 어쨌든 내가 코드에서 빠진 것을 발견했다. (컨트롤러에서 setter와 getter는 어디서 잘못 됐는지). – Carlos