Recentemente, encontrei um problema em que preciso passar em um grupo de objetos no projeto. No passado, encontrei apenas casos em que um objeto, vários objetos ou um conjunto de matrizes foram transmitidos. É raro ver se um grupo de objetos é passado. Portanto, parece um pouco complicado quando você encontra esse problema. Eu pensei que seria possível resolvê -lo dessa maneira.
@RequestMapping ("Salvar1") public void save1 (plano de plano, list <Planitem> planitems, httpServletResponse resposta) {// TODO MAIS ... addMessage (resposta, message_type_success, null, message_success);}Mas depois descobri que era muito estúpido e ingênuo. Este método não pode vincular parâmetros. Algumas pessoas dizem que a primavera deve sacrificar parte de seu desempenho em comparação com os suportes. Mas não tenho pesquisa sobre a primavera e as suportes, apenas a uso como uma ferramenta. Então, eu realmente não sei por quê. Indo longe, de volta ao tópico. Existem outras soluções online. É assim
classe pública PERSONLIST {Private List <Pesso> Pessoa; Lista pública <Pesso> getPerson () {Return Pessoa; } public void setPerson (list <Soper> Pessoa) {this.person = Person; }} No controlador:
@RequestMapping (value = "xxx", método = requestMethod.post) Teste de void public (PersonList Pessoa) {// Pessoa transipada}} A página deve ser escrita assim:
<form id = "form" action = "test/test.do" method = "post"> <input type = "text" name = "pessoa [0] .username" value = "trabalhos"/> <input type = "text" name = "pessoa [0] .age". name = "pessoa [1] .age" value = "21"/> <br/> <input type = "submit"> <form>
Mas tentei esse método, mas ainda não funcionou. Não sei se sou muito estúpido ou por quê.
Depois de muitas reviravoltas, outra solução foi encontrada. Passe a sequência JSON do objeto da lista em segundo plano. Depois que o plano de fundo recebe os parâmetros. Em seguida, converta o JSON em objeto. O código front-end está isento, o código de segundo plano é o seguinte.
@RequestMapping ("Salvar") public void salvar (plano de plano, string planejitemjson, httpServletResponse resposta) {list <Planitem> parsearray = json.parsearray (planitemjson, planitem.class); // TODO O que você quer addMessage (resposta, message_type_success, null, message_success);}Mas há um pequeno problema com isso, ou seja, a string json será adicionada automaticamente com cotações duplas na seção de chave na seção anterior. Ao decodificar em segundo plano, as citações duplas são escapadas como ""; "Então você também precisa converter" ""; " para duas citações. Isto é, o código final é
@RequestMapping ("Salvar") public void salvar (plano de plano, string planiTemjson, httpServletResponse resposta) {planejitemjson = planitemjson.replaceall ("", "/" "); list <Planitem> parseary = json.parseRaRaRaRay (planitem.cl); Message_type_success, null, message_success);}Após o teste, esse método também funciona para objetos de lista e objetos de lista.
PS: Para melhorar a robustez do programa, você pode verificar o JSON depois de escapar dos objetos JSON, o que evita erros no JSON, voltando -se para os objetos Java.
Ou use um método mais violento para executar operações de pegá -lo quando o JSON virar para a lista.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.