Como posso usar a lista de objetos com a tag “opção” do Stripes?
Pergunta
Tenho uma lista de objetos, produzida por JPA q.getResultList()
.
Eu gostaria de usá-lo em um menu suspenso, mas a tag "option" do Stripes não pode aceitar List, apenas Collection
, Enum
and
Map
.
Sou novo em Java, por isso talvez o List
posso traduzir para cada um deles, mas não sei como posso resolver esse problema.
(Stripes select,option-map,-enumeration, -collection podem criar um menu suspenso a partir das estruturas de objetos de entrada mencionadas anteriormente)
Solução
A documentação do Opções-coleta Tag diz:
Escreve um conjunto de
<option value="foo">bar</option>
tags na página com base no conteúdo de umCollection
,Iterable
ouArray
. Cada elemento da coleção é representado por uma única tag de opção na página. Usa o rótulo e os atributos de valor na tag para nomear as propriedades dos objetos noCollection
Isso deve ser usado para gerar o corpo da tag HTML da opção e o atributo de valor da tag HTML, respectivamente. Se (ou ambos) das propriedades do rótulo ou do valor forem omitidas, o próprio item será usado para o rótulo/valor - isso é feito para suportar coleções de tipos simples, como strings e números.Por exemplo, uma declaração de tag que se parece:
<stripes:options-collection collection="${cats}" value="catId" label="name"/>
faria com que o recipiente procurasse um
Collection
chamado "gatos" nos vários escopos JSP e defina -o na tag. A tag prosseguiria para iterar através da chamada de coleçãogetCatId()
egetName()
em cada gato para produzir tags de opção HTML.
UMA java.util.List
Começar um Collection
, basta passar para o collection
atributo da tag mencionada.
Outras dicas
A List
objeto é um Collection
objeto:o o List
interface estende a de Collection
.Você pode usar um List
objeto, como ArrayList
ou LinkedList
em todos os lugares onde você precisa de um Collection
.
O Enum
type é uma espécie de lista estática, declarando uma classe como sendo um enum, assim:
public enum MyEnum {
FirstOption, SecondOption, ThirdOption;
}
O Map
type é um conjunto associativo;por exemplo.o Hashtable
, HashMap
e TreeMap
são todos exemplos de um Map
.