【发布时间】:2017-07-01 17:07:54
【问题描述】:
我正在尝试使用 Spring MVC 做一个 Web 应用程序,但当我尝试用对象信息填充 JSP 页面时遇到了困难:
我有一个类 Pessoa(“人”):
@Entity
public class Pessoa {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private int idPessoa;
private String nome;
private int rg;
private TipoEstado rgEstado;
private int cpf;
@DateTimeFormat
private Calendar dataNascimento;
private String profissao;
private String nomePai;
private String nomeMae;
private TipoEstadoCivil estadoCivil; //enum
private TipoSituacao situacao;
@OneToOne(cascade=CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name="idEndereco")
private Endereco endereco;
@OneToMany(mappedBy = "pessoa", targetEntity = ContaCorretora.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<ContaCorretora> contaCorretora;
@OneToMany(mappedBy = "pessoa", targetEntity = Telefone.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<Telefone> telefone;
@OneToOne(cascade=CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name="idContaBancaria")
private ContaBancaria contaBancaria;
@OneToOne(cascade=CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name="email")
private Usuario usuario;
控制器方法:
@RequestMapping("/listarPessoa/{id}")
public ModelAndView listarPessoa(@PathVariable("id") int id) {
ModelAndView modelAndView = new ModelAndView("pessoa/listaespecifica");
Pessoa pessoa = pessoaDao.find(id);
modelAndView.addObject("pessoa",pessoa);
return modelAndView;
}
PessoaDAO 方法:
public Pessoa find(int id) {
return manager.createQuery("select p from Pessoa as p where p.idPessoa = :id", Pessoa.class)
.setParameter("id", id).getSingleResult();
}
主要问题是当属性有关系时,我无法在.JSP 页面中显示信息。当我放置没有关系的属性时,它工作正常!
例如:
上面的代码有效:
<tr>
<td><b>RG</b></td>
<td>${pessoa.rg }</td>
</tr>
当我这样放代码时,不起作用:(“Endereco”就像“地址”,在这种情况下是与pessoa的OnetoOne关系,“logradouro”是Endereco的一个属性”。然后,这段代码以上不起作用:
<tr>
<td><b>Endereco</b></td>
<td>${pessoa.endereco.logradouro }</td>
</tr>
这是错误:
**type Exception report
message An exception occurred processing JSP page /WEB-INF/views/pessoa/listaespecifica.jsp at line 69
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/pessoa/listaespecifica.jsp at line 69
66: </tr>
67: <tr>
68: <td><b>Endereco</b></td>
69: <td>${pessoa.endereco.logradouro }</td>
70:
71:
72: </tr>**
【问题讨论】:
标签: java html spring jsp spring-mvc