我在Struts2中有一个包含电子表格的表单,该电子表格以3行和5列开头,当spreasheet已满时,使用javascript添加另一行。
Java代码在glassfish 4.0和java 7u25上运行
当我在netbeans上测试时运行正常,但是当我在生产中实现并发送表单时,在动作类中我得到前3行完整但从4开始获取空对象
如果我使数组大小告诉我行数,但3后面的行总是以空值
此外,如果我有两个应用程序,共享此结构,在glassfish中,我重启服务器,第二个应用程序开始失败并出现此错误。
pojo和action类的代码是
OrdenCargaPojo
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Administrador
*/
public class OrdenCargaPojo {
protected int id = 0;
protected List<ArticulosPojo> articulos = new ArrayList<ArticulosPojo>();
protected double importe = 0;
protected boolean soloLectura = false;
// Cargo la configuracion de la grilla
public OrdenCargaPojo() {
// inicio la grilla
articulos.add(new ArticulosPojo());
articulos.add(new ArticulosPojo());
articulos.add(new ArticulosPojo());
}
/**
* @return the articulos
*/
public List<ArticulosPojo> getArticulos() {
return articulos;
}
/**
* @param articulos the articulos to set
*/
public void setArticulos(List<ArticulosPojo> articulos) {
this.articulos = articulos;
}
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the soloLectura
*/
public boolean isSoloLectura() {
return soloLectura;
}
/**
* @param soloLectura the soloLectura to set
*/
public void setSoloLectura(boolean soloLectura) {
this.soloLectura = soloLectura;
}
/**
* @return the totalGrilla
*/
public double getImporte() {
return importe;
}
/**
* @param totalGrilla the totalGrilla to set
*/
public void setImporte(double importe) {
this.importe = importe;
}
}
ArticulosPojo
import java.io.Serializable;
import java.util.Date;
/**
*
* @author Administrador
*/
public class ArticulosPojo implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String etiqueta = "";
private String tropa = "";
private String garron = "";
private Date fechaFaena;
private double peso = 0;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the etiqueta
*/
public String getEtiqueta() {
return etiqueta;
}
/**
* @param etiqueta the etiqueta to set
*/
public void setEtiqueta(String etiqueta) {
this.etiqueta = etiqueta;
}
/**
* @return the tropa
*/
public String getTropa() {
return tropa;
}
/**
* @param tropa the tropa to set
*/
public void setTropa(String tropa) {
this.tropa = tropa;
}
/**
* @return the garron
*/
public String getGarron() {
return garron;
}
/**
* @param garron the garron to set
*/
public void setGarron(String garron) {
this.garron = garron;
}
/**
* @return the fechaFaena
*/
public Date getFechaFaena() {
return fechaFaena;
}
/**
* @param fechaFaena the fechaFaena to set
*/
public void setFechaFaena(Date fechaFaena) {
this.fechaFaena = fechaFaena;
}
/**
* @return the peso
*/
public double getPeso() {
return peso;
}
/**
* @param peso the peso to set
*/
public void setPeso(double peso) {
this.peso = peso;
}
}
GuardarOrdenCargaAction
/**
* llama a los dao para guardar los datos
*/
public class GuardarOrdenCargaAction extends ActionSupport{
private OrdenCargaPojo ordenCarga = new OrdenCargaPojo();
/**
* carga y llama a los dao para guardar los datos
* @return
* @throws Exception
*/
@Override
public String execute() throws Exception {
for (ArticulosPojo articulos : ordenCarga.getArticulos()) {
if(articulos.getId() > 0){ // error - nullpointer luego de la 3ra fila
System.out.println(articulos.getId());
}
}
return SUCCESS;
}
/**
* @return the OrdenCarga
*/
public OrdenCargaPojo getOrdenCarga() {
return ordenCarga;
}
/**
* @param OrdenCarga the OrdenCarga to set
*/
public void setOrdenCarga(OrdenCargaPojo ordenCarga) {
this.ordenCarga = ordenCarga;
}
}
抱歉,我无法提供视图代码,我无权这样做
可能导致此问题的原因是什么?