Este artículo estudia principalmente la explicación detallada de los botones de radio del marco Struts2 y ejemplos relacionados de la conversión de tipos de enumeración, de la siguiente manera.
Usando etiquetas Struts2, no hay duda de que primero debe presentar la biblioteca de etiquetas:
<%@ taglib prefix = "s" uri = "/struts-tags"%>
Suponga que el valor de la lista en el cuadro de radio de radio es una colección de mapas:
<s: radio list = "#{'man': 'masculino', 'mujeres': 'femenino'}" name = "género" listkey = "key" listValue = "valor" valor = "'hombre'" thema = "simple"/> Nota:
1. El atributo de nombre también es el atributo de nombre correspondiente al código HTML.
2. El atributo ListKey corresponde al atributo de valor del código HTML.
3. El atributo ListValue corresponde al atributo de etiqueta de código HTML.
4. El atributo de valor se refiere a: Cuando el valor del valor coincide con el valor en el conjunto, se selecciona (si el valor del valor es una cadena, debe agregar cotizaciones únicas).
Después de la ejecución, se analizará en el código HTML, como se muestra en la figura:
Vamos a explicarlo a través de un caso:
Al modificar al usuario, salte a la interfaz de modificación y haga eco del género del usuario en la interfaz de modificación. Aquí usamos la enumeración para representar el género.
La interfaz de usuario inicial:
Estructura del proyecto:
Interfaz de usuario:
<Body> <Form Action = "enumaction_test.action" método = "post"> Seleccione Gender: <s: radio list = "#{'Man': 'masculino', 'mujeres': 'femenino'}" name = "gender" listkey = "key" listValue = "valor" valor = "'man'" temo = "simple"/> <input type = "Subt" Value = "Subt" </formulCódigo de acción de fondo:
public class enumaction {/*Define Gender, el valor predeterminado es masculino*/privado género género = género.man; public gender getGender () {return gender;} public void setGender (género género) {this.gender = género;}/*Test Method*/public String test () {return "éxito";}} Nota: Debido a que estamos utilizando los tipos de enumes, necesitamos realizar una conversión de tipo (el método de conversión específico se mencionó en el blog anterior).
Enumerado Código de clase de conversión de tipo:
public class enumTyPeConverter extiende defaultTyPeConverter {@suppleswarnings ("rawTypes") @Override public object conververValue (map <string, objeto> context, objeto valor, class Totype) {/*Convertir desde el frente a Backend, de String a ENUM Tipo*/if (TOType == Gender.claSs) {/*Forcing Value Tyer a Artle* (String []) value; return gender.ValueOf (params [0]);} else if (totype == string.class) {/*pasa de la acción de fondo a primer plano, es decir, convertir el tipo de tipoDefina el archivo de propiedades para la conversión de tipo global:
com.lixue.bean.gender = com.lixue.converter.enumTypeConverter
La página de resultados después del salto (interfaz de modificación del usuario):
<Body> Your Gender: <S: Radio List = "#{'Man': 'Male', 'Women': 'femenino'}" name = "género" listkey = "key" listValue = "valor" valor = "género" thema = "simple"/> </body>Nota: ¿Cómo hacer eco del género seleccionado actualmente en la interfaz de modificación? La clave es mirar el valor del valor. Escribí un género en el código anterior. De hecho, este género es una propiedad definida en la acción. Cuando hablamos sobre OGNL en el artículo anterior, dijimos que las propiedades en la acción se guardarán en la pila de valor. Tomamos las propiedades en la pila de valor y se puede obtener directamente a través del nombre del atributo, sin obtenerlas a través de la forma de #NamesPace. Después de obtenerlo, coincida con la colección de mapas anterior para determinar si se debe verificar.
1. Algunas personas pueden tener preguntas, ¿por qué se puede escribir ListKey directamente en la clave y ListValue se escriba directamente sobre el valor?
Respuesta: Cuando Struts2 analiza la colección de la lista en la etiqueta <S: Radio>, usa Iterator. La función del iterador es guardar el resultado (cada vez un objeto de entrada) en la parte superior de la pila de la pila de valor cada vez que el bucle obtiene el valor. Por lo tanto, al usar la expresión de OGNL, puede usar directamente el atributo del objeto (los nombres de los atributos de la entrada son los nombres clave y valor) para obtener el valor. No hay necesidad de usar el espacio de nombres #. Los estudiantes que no entienden la expresión de OGNL pueden leer el artículo anterior.
2. Encontraremos que al escribir etiquetas, siempre escribimos el tema del atributo. La función de este atributo es evitar Struts2 generando algún código innecesario al analizar las etiquetas, pero es necesario escribirlo cada vez. ¿No es una estafa? De hecho, podemos configurar una constante en el archivo Struts.xml para lograr el efecto:
*
El aprendizaje de estos marcos de Struts es bastante como ver el cielo azul a través de las nubes y la niebla. Tengo una comprensión más clara de los marcos de Java, la primavera, mybatis, etc., y todas las cosas están conectadas. . .
Lo anterior es todo el contenido de este artículo sobre la explicación detallada del botón de radio Struts2 y el ejemplo del código de conversión del tipo de enumeración. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!