gpt4 book ai didi

java - 如何在 thymeleaf 中使用列表来使用输入类型?

转载 作者:行者123 更新时间:2023-12-02 12:29:49 25 4
gpt4 key购买 nike

我真的不知道如何使用 Spring MVC 和 Thymeleaf 在表单中使用对象列表。如果对象的属性不是列表,我知道如何编写输入类型,但使用列表我认为我需要编写不同的代码。

我创建了一个名为“Pessoa”(人)的类和另一个名为“Endereço”(地址)的类

@Entity
public class Pessoa {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private int idPessoa;
@NotEmpty(message = "Nome da pessoa é obrigatório")
private String nome;
private String rg;
@Enumerated(EnumType.STRING)
private TipoEstado rgEstado;
private String cpf;
@DateTimeFormat(pattern="dd/MM/yyyy")
@Temporal(TemporalType.DATE)
private Date dataNascimento;
private String profissao;
private String nomePai;
private String nomeMae;
@Enumerated(EnumType.STRING)
private TipoEstadoCivil estadoCivil; //enum
private String obs;
@OneToMany(mappedBy = "pessoa", targetEntity = Endereco.class, fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<Endereco> endereco;

Endereço(地址)

@Entity
public class Endereco {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Long idEndereco;
private String logradouro;
private String numero;
private String complemento;
private String bairro;
private String cep;
@Enumerated(EnumType.STRING)
private TipoEstado estado;
@Enumerated(EnumType.STRING)
private TipoEndereco tipoEndereco;
private String cidade;
private String pais;
@ManyToOne
@JoinColumn(name="idPessoa")
private Pessoa pessoa;

我已经在两个类中实现了 getter 和 setter。

我的问题是当我想在“endereço”字段中进行输入时

例如,当我输入“name”时,上面的代码有效:

            <div class="form-group" th:classappend="${#fields.hasErrors('nome')} ? has-error">
<label for="nome" class="col-sm-2 control-label">Nome</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="nome" th:field="*{nome}" />
</div>
</div>

我尝试对 Endereco(地址)做同样的事情,它是一个地址列表。例如:

            <div class="form-group">
<label for="nome" class="col-sm-2 control-label">Logradouro</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="logradouro" th:field="*{endereco.logradouro}" />
</div>
</div>

我意识到属性“nome”是来自 Pessoa 的一个简单字符串,但属性“endereco”是 Endereco 的列表,也插入到 Pessoa 类中。也许我需要使用列表编写不同的代码,但我真的不知道什么时候开始。

我不知道 Controller 中的显示方法是否重要,但就像这样:

@RequestMapping("/novo")
public ModelAndView novo() {

ModelAndView mv = new ModelAndView(CADASTRO_VIEW);

mv.addObject(new Pessoa());
return mv;
}

最佳答案

发布OP的解决方案(取自上面的评论):

Sorry, probably i wasnt clear, I want to input the "endendeco" values in a form, I've use this solution and works well:

<div class="form-group"> 
<label for="logradouro" class="col-sm-2 control-label">Logradouro</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="logradouro" th:field="*{endereco[0].logradouro}" />
</div>
</div>

关于java - 如何在 thymeleaf 中使用列表来使用输入类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45341089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com