【发布时间】:2014-08-11 10:48:35
【问题描述】:
在我当前的 spring 项目中,我在数据库中插入/更新新记录的视图传递给 jsp 代码两个属性:
- map: 插入实体类字段的列表
- value: Map> 其中键是类的字段,值是声明该字段的类中的字段列表。
在 jsp 代码中,我遍历列表以添加表单输入字段,如下所示:
<c:forEach var="entry" items="${value[entry]}">
<c:when test="${entry == '...'}">
...
</c:when>
<c:otherwise>
...
</c:otherwise>
</c:forEach>
我的项目中的每个实体都有一个<c:when> 块,<c:otherwise> 块被分隔为原始值。该页面的完整代码可以在这里看到:https://github.com/klebermo/loja.cms/blob/master/src/main/webapp/WEB-INF/jsp/common/fields.jsp
我的问题是当我尝试打开视图以插入此类记录时:
@Entity
@Table(name="cliente")
public class Cliente {
@Id
@Column(name = "id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name="usuario")
@Order(value=1)
private Usuario usuario;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name="pessoa_fisica")
@Order(value=2)
private PessoaFisica pessoaFisica;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name="pessoa_juridica")
@Order(value=3)
private PessoaJuridica pessoaJuridica;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name="endereco_entrega")
@Order(value=4)
private Endereco endereco_entrega;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name="endereco_cobranca")
@Order(value=5)
private Endereco endereco_cobranca;
}
最后两个字段未在页面上呈现。在我的测试中,当我从<c:when> 字段<c:when> 的字段contato 中删除<c:if> 字段<c:if> 时,这两个字段都正确呈现。谁能告诉我这里出了什么问题?
【问题讨论】: