【发布时间】:2021-04-16 19:31:03
【问题描述】:
在我的 Spring 控制器中,我有:
List<User> Users = this.userService.UsersList();
mav = new ModelAndView("users");
mav.addObject("Users", Users);
当我遍历Users 时,我可以看到列表中每个元素的所有属性值。
这是我的 .jsp 代码:
<c:forEach items="${Users}" var="usr">
${usr}
</c:forEach>
这是我的用户类:
@Entity
@Table(name="usuario")
public class User implements Serializable {
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@JoinColumn(name = "id_perfil")
@OneToOne(cascade=CascadeType.ALL, fetch = FetchType.EAGER)
private Perfil perfil;
@Column(name="nombre")
private String nombre;
@Column(name="usuario")
private String usuario;
@Column(name="contrasenia")
private String contrasenia;
@Column(name="correo")
private String correo;
@Column(name="telefono")
private String telefono;
@Column(name="imagen_perfil")
private String imagen_perfil;
@Column(name="intento_fallido")
private int intento_fallido;
@Column(name="intranet_id")
private Integer intranet_id;
@Column(name="intranet_notaria")
private Integer intranet_notaria;
@Column(name="intranet_token_codigo")
private String intranet_token_codigo;
@Column(name="intranet_token_fecha")
@Temporal(TemporalType.TIMESTAMP)
private Date intranet_token_fecha;
@Column(name="tesoreria_token_codigo")
private String tesoreria_token_codigo;
@Column(name="tesoreria_token_fecha")
@Temporal(TemporalType.TIMESTAMP)
private Date tesoreria_token_fecha;
@Column(name="activo")
private int activo;
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public Perfil getPerfil() { return perfil; }
public void setPerfil(Perfil perfil) { this.perfil = perfil; }
public String getNombre() { return nombre; }
public void setNombre(String nombre) { this.nombre = nombre; }
public String getUsuario() { return usuario; }
public void setUsuario(String usuario) { this.usuario = usuario; }
public String getContrasenia() { return contrasenia; }
public void setContrasenia(String contrasenia) { this.contrasenia = contrasenia; }
public String getCorreo() { return correo; }
public void setCorreo(String correo) { this.correo = correo; }
public String getTelefono() { return telefono; }
public void setTelefono(String telefono) { this.telefono = telefono; }
public String getImagenPerfil() { return imagen_perfil; }
public void setImagenPerfil(String imagen_perfil) { this.imagen_perfil = imagen_perfil; }
public int getIntentoFallido() { return intento_fallido; }
public void setIntentoFallido(int intento_fallido) { this.intento_fallido = intento_fallido; }
public Integer getIntranetId() { return intranet_id; }
public void setIntranetId(Integer intranet_id) { this.intranet_id = intranet_id; }
public Integer getIntranetNotaria() { return intranet_notaria; }
public void setIntranetNotaria(Integer intranet_notaria) { this.intranet_notaria = intranet_notaria; }
public String getIntranetTokenCodigo() { return intranet_token_codigo; }
public void setIntranetTokenCodigo(String intranet_token_codigo) { this.intranet_token_codigo = intranet_token_codigo; }
public Date getIntranetTokenFecha() { return intranet_token_fecha; }
public void setIntranetTokenFecha(Date intranet_token_fecha) { this.intranet_token_fecha = intranet_token_fecha; }
public String getTesoreriaTokenCodigo() { return tesoreria_token_codigo; }
public void setTesoreriaTokenCodigo(String tesoreria_token_codigo) { this.tesoreria_token_codigo = tesoreria_token_codigo; }
public Date getTesoreriaTokenFecha() { return tesoreria_token_fecha; }
public void setTesoreriaTokenFecha(Date tesoreria_token_fecha) { this.tesoreria_token_fecha = tesoreria_token_fecha; }
public int getActivo() { return activo; }
public void setActivo(int activo) { this.activo = activo; }
@Override
public String toString() {
return "Id:" + id + ", " + "Perfil:" + perfil.getNombre() + ", " + "Id_Perfil:" + perfil.getId() + ", " + "Nombre:" + nombre + ", " + "Usuario:" + usuario + ", " + "Correo:" + correo + ", " + "Teléfono:" + telefono + ", " + "Image_Perfil:" + imagen_perfil + ", " + "Intranet_Id:" + intranet_id + ", " + "Intranet_Notaria:" + intranet_notaria + ", " + "Activo:" + activo;
}
}
问题是${usr} 只显示我的一些属性,但不是全部!我需要在我的 jsp 中显示所有属性。
【问题讨论】:
-
我猜这是因为默认的
toString()方法只显示这些属性。您需要修改源代码中的默认toString(),或者创建一个新类,在调用toString()时显示您想要的内容。 (或者只是在 JSP 循环中手动打印出您想要的属性。) -
P.S. Java 命名约定是局部变量应该以小写字母开头。所以
Users应该是users。当您需要让其他人(如我们)阅读和理解您的代码时,坚持这些约定真的很有帮助。 -
您的评论和建议给了我很多指导。你让我看到了我不知道的事情,并意识到我的问题不适合我的问题。当我遍历 .jsp 文件中的对象列表时,我无法使用
${usr.id}或${usr.name}表示法访问所有类属性。 -
我们需要查看
User的源文件才能知道下一步该做什么。您想显示该类中的哪些属性? -
所有人,我更新我的帖子:(
标签: java spring spring-mvc jsp