jsp / jstl代码的renderization失败

时间:2014-08-11 10:48:36

标签: java spring jsp jstl

在我目前的spring项目中,我在数据库中插入/更新新记录的视图传递给jsp代码两个属性:

  • 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:if>的块contato中删除<c:when>的块pessoaJuridica时,这两个字段都会正确地重新定义。任何人都可以告诉我这里有什么问题?

1 个答案:

答案 0 :(得分:0)

问题似乎是您将style="display: none;"添加到包装div,因此它们不会显示在浏览器中。

<div class="panel panel-default" id="pj" style="display: none;">

如果删除了该字段应该只显示的样式。