Este artigo estuda principalmente a explicação detalhada dos botões de rádio da estrutura do Struts2 e exemplos relacionados da conversão de tipos de enumeração, como segue.
Usando tags STRUTS2, não há dúvida de que você precisa apresentar a biblioteca de tags primeiro:
<%@ taglib prefix = "s" uri = "/struts-tags"%>
Suponha que o valor da lista na caixa de rádio seja uma coleção de mapas:
<S: Radio list = "#{'man': 'masculino', 'mulheres': 'feminino'}" name = "gênero" listkey = "key" listValue = "value" value = "'man'" tema = "simples"/> Observação:
1. O atributo de nome também é o atributo de nome correspondente ao código HTML.
2. O atributo ListKey corresponde ao atributo de valor do código HTML.
3. O atributo ListValue corresponde ao atributo de etiqueta de código HTML.
4. O atributo de valor refere -se a: Quando o valor do valor corresponde ao valor no conjunto, ele será selecionado (se o valor do valor for uma string, você precisará adicionar cotações únicas).
Após a execução, ele será analisado no código HTML, conforme mostrado na figura:
Vamos explicar através de um caso:
Ao modificar o usuário, pule para a interface de modificação e ecoe o gênero do usuário na interface de modificação. Aqui usamos enumeração para representar o gênero.
A interface inicial do usuário:
Estrutura do projeto:
Interface do usuário:
<body> <form ação = "enumaction_test.action" method = "post"> Selecione Gênero: <S: Radio List = "#{'man': 'masculino', 'Mulheres': 'feminino'}" name = "gênero" listKey = "key" listValue = "value" "" "" "" ""/"simples"/> <inputer "typ (key" "typ (key" "e" value ""/""/"/> <inputy =" key "listVer =" value "=" "" "" ""/"simples"/> <inputy "/" typ ""/"the"/") subster"/"manusen) subster"/"/"/"/"/> <inputy = "key" listValue = "value" "" "" "" ""/"simples"/> <inputy = "type"Código de ação em segundo plano:
classe pública enumação {/*Definir gênero, o padrão é masculino*/gênero privado gênero = gênero.man; public gênero getgender () {return gênero;} public void setgender (gênero gênero) {this.gender = gênero;}/*método de teste*/public string test () {retorn "success";}}} Nota: Como estamos usando os tipos de enum, precisamos executar a conversão do tipo (o método de conversão específico foi mencionado no blog anterior).
Enumerar o código da classe de conversão do tipo:
classe pública enumtypeConverter estende defaultTypeConverter {@suppresswarnings ("RawTypes") @Override public Object ConvertValue (map <string, objeto> contexto, valor do objeto, classictyPy) {/*convert da frente para o back -end, de string para enum/type*/if (toType == (String []) valor; retorne gênero.ValueOf (params [0]);} else if (TOTYPE == String.class) {/*passa da ação de fundo para o primeiro plano, ou seja, convertendo o tipo de gênero em tipo de string*//*conversando firmemente o valor em gênero*/gênero gênero = (gênero); retorno;Defina o arquivo de propriedades para conversão de tipo global:
com.lixue.bean.gender = com.lixue.converter.enumtypeConverter
A página de resultado após o salto (interface de modificação do usuário):
<Body> Seu gênero: <S: Radio list = "#{'man': 'masculino', 'mulheres': 'feminino'}" name = "gênero" listkey = "key" listValue = "value" value = "gênero" tema = "simples"/> </body>Nota: Como ecoar o gênero atualmente selecionado na interface de modificação? A chave é olhar para o valor do valor. Eu escrevi um gênero no código acima. De fato, esse gênero é uma propriedade definida na ação. Quando conversamos sobre Ognl no artigo anterior, dissemos que as propriedades da ação serão salvas na pilha de valor. Tomamos as propriedades na pilha de valor e podemos ser obtidos diretamente através do nome do atributo, sem obtê -los através da forma de #NamesPace. Depois de obtê -lo, combine -o com a coleção de mapa anterior para determinar se deve verificar.
1. Algumas pessoas podem ter dúvidas, por que a ListKey pode ser escrita diretamente na chave e a lista de listValue será escrita diretamente no valor.
Resposta: Quando o Struts2 analisa a coleção de listas na tag <s: Radio>, ele usa o iterador. A função do iterador é salvar o resultado (cada vez que um objeto de entrada) na parte superior da pilha da pilha de valor toda vez que o loop é obter o valor. Portanto, ao usar a expressão OGNL, você pode usar diretamente o atributo do objeto (os nomes dos atributos da entrada são nomes de chave e valor) para obter o valor. Não há necessidade de usar o espaço de nome #. Os alunos que não entendem a expressão de Ognl podem ler o artigo anterior.
2. Descobrimos que, ao escrever tags, sempre escrevemos o tema do atributo. A função desse atributo é evitar o Struts2 gerando algum código desnecessário ao analisar tags, mas é necessário escrevê -lo sempre. Não é uma farsa? De fato, podemos configurar uma constante no arquivo struts.xml para alcançar o efeito:
<!-STRUTS2 Tag Style-> <nome constante = "struts.ui.theMe" value = "simples" />
O aprendizado dessas estruturas de suportes é como ver o céu azul através das nuvens e da névoa. Tenho um entendimento mais claro das estruturas Java, primavera, mybatis etc., e todas as coisas estão conectadas. . .
O exposto acima é todo o conteúdo deste artigo sobre a explicação detalhada do botão de rádio STRUTS2 e o exemplo do código de conversão do tipo de enumeração. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!