我是Spring的新手,我有个例外。
我有一个jsp,有很多选择。它们都工作正常,但有一个显示了这个例外:
org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /WEB-INF/pages/nuevo-expediente.jsp en línea 45
42: <td>
43: <form:select path="expedientePadre.codExpediente">
44: <form:option value="-" label="Seleccione un expediente"/>
45: <form:options items="${expedientes}" itemLabel="codExpediente" itemValue="codExpediente"/>
46: </form:select>
47: <form:errors path="expedientePadre" element="span"/>
48: </td>
org.springframework.beans.NotReadablePropertyException: Invalid property 'codExpediente' of bean class [com.atlantis.atecliente.model.TipoExpediente]: Bean property 'codExpediente' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
我正在以与其他工作正常的人相同的方式实施selct。下面是jsp代码:
<tr>
<td>Expediente padre:</td>
<td>
<form:select path="expedientePadre.codExpediente">
<form:option value="-" label="Seleccione un expediente"/>
<form:options items="${expedientes}" itemLabel="codExpediente" itemValue="codExpediente"/>
</form:select>
<form:errors path="expedientePadre" element="span"/>
</td>
</tr>
这里是控制器:
@RequestMapping(value = "nuevo-expediente")
public String createExpedienteGet(Model model) {
model.addAttribute("expediente", new Expediente());
model.addAttribute("expedienteP", new Expediente());
List<TipoResolucion> resoluciones = service.getResoluciones();
List<TipoExpediente> listaTipos = service.getTipos();
List<EstadoExpediente> listaEstados = service.getEstados();
List<Expediente> listaExpedientes = service.getExpedientes();
List<TipoRelacion> listaRelaciones = service.getRelaciones();
List<CanalExpediente> listaCanales = service.getCanales();
List<IdiomaExpediente> listaIdiomas = service.getIdiomas();
model.addAttribute("resoluciones", resoluciones);
model.addAttribute("tipos", listaTipos);
model.addAttribute("estados", listaEstados);
model.addAttribute("expedientes", listaExpedientes);
model.addAttribute("tiposRelacion", listaRelaciones);
model.addAttribute("canales", listaCanales);
model.addAttribute("idiomas", listaIdiomas);
return "nuevo-expediente";
}
@RequestMapping(value = "nuevo-expediente", method = RequestMethod.POST)
public String createExpedientePost(@ModelAttribute("expediente") Expediente expediente, BindingResult result) {
service.createExpediente(expediente);
return "redirect:expedientes";
}
这里,实体Expediente:
@Entity
@Table(name="Expediente")
public class Expediente implements Serializable {
@Id
@Column(length = 15)
private String codExpediente;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name = "tipoExpediente")
private TipoExpediente tipoExpediente;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name = "estadoExpediente")
private EstadoExpediente estadoExpediente;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name = "expedientePadre")
private Expediente expedientePadre;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name = "tipoRelacion")
private TipoRelacion tipoRelacion;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name = "canalEntrada")
private CanalExpediente canalEntrada;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name = "idiomaEntrada")
private IdiomaExpediente idiomaEntrada;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name = "idiomaSalida")
private IdiomaExpediente idiomaSalida;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name = "tipoResolucion")
private TipoResolucion tipoResolucion;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name = "canalSalida")
private CanalExpediente canalSalida;
@Column(length = 10)
private String numeroSerie;
@Column(length = 10)
private String numeroHoja;
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date fechaRedaccion;
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date fechaRecepcion;
@Column(length = 200)
private String asunto;
@Column (length = 1000)
private String descripcion;
@Column(length = 20)
private String usuarioRegistro;
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date fechaRegistro;
@Column (length = 20)
private String usuarioModificacion;
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date fechaModificacion;
@Column (length = 20)
private String usuarioCierre;
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date fechaCierre;
public String getCodExpediente() {
return codExpediente;
}
public void setCodExpediente(String codExpediente) {
this.codExpediente = codExpediente;
}
............................
............................
最后是TipoExpedinte实体
package com.atlantis.atecliente.model;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table
public class TipoExpediente implements Serializable {
@Id
@Column(length = 40)
private String tipo;
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
}
我认为这可能发生,因为PharmantePadre属性是同一实体Pharmante的外键,但我不知道如何解决它。。。
要帮忙吗?谢谢
我认为问题在于您的类TipExpedient类没有用于属性CodeExpedient的getter或setter方法。Spring正在查看您的TipoExpediente类,并希望它具有您在JSP中概述的属性。
我是新来的Spring靴。我在基于javax的验证上遇到了麻烦。控制器期望从POSTendpoint获得json obj的列表。在JSON请求json数组中,如果或为空,我得到正确的400错误。但是,当或为空时,它会抛出500个带有错误消息的异常: 控制器。JAVA 汽车JAVA Engine.java CollectionValidator。JAVA 验证者Advice.java 请求/响应:U
在“项目创建”视图中,我需要一个选择框,该框显示所有拥有类似Chef Projet的Rolename的用户 以下是Projet、Usilizateur最重要的摘录: 用户: 当提交表格时,被选中的用户将被分配到项目中。 Projets。jsp: 管理员控制器: 这是堆栈跟踪:
我收到以下错误“bean类[java.util.ArrayList]的无效属性'username]:bean属性'username'不可读或具有无效的getter方法”。 虽然我有正确的表单bean,名称为username,但是我仍然收到了这个错误,你能帮我解决这个错误吗。。? 我的jsp页面在下面 下面提供了我的控制器
因此,我有一个任务来编写一个简单的注册表路由Web应用程序。使用Spring MVC。所以我有“路线”类,在那里我想保留起点、终点和中间点列表。但是我不明白,如何把值从jsp列表(例如使用jstl)。所以我决定解析一个字符串。 并遵循JSP: 如果有必要,我可以发布控制器代码。我有一个错误: 谁能解释一下我做错了什么?
谁能看看这个错误并帮助我吗?我花了两个小时去找问题,但我没有找到解决办法。列出数据是可行的,但问题是在使用action=“saveCategory添加jsp时。 org.springframework.beans.NotReadablePropertyException:bean类[java.util.ArrayList]的属性“category name”无效:bean属性“category n
现在在用spring框架spring boot version = ' 1 . 5 . 9 . release '做java。但是每次我运行我的网络应用程序时 org.springframework.beans.NotReadable属性异常: bean类的无效属性'id'[java.util.ArrayList]: Bean属性'id'不可读或具有无效的getter方法:getter的返回类型是