Cet article étudie principalement l'explication détaillée des boutons radio du cadre Struts2 et des exemples connexes de la conversion des types d'énumération, comme suit.
En utilisant les balises Struts2, il ne fait aucun doute que vous devez d'abord introduire la bibliothèque de balises:
<% @ taglib prefix = "s" uri = "/ struts-tags"%>
Supposons que la valeur de la liste dans la radio radio est une collection de cartes:
<s: radio list = "# {'man': 'mâle', 'women': 'feme'}" name = "Gender" listKey = "key" listvalue = "value" value = "'man'" thème = "Simple" /> Note:
1. L'attribut de nom est également l'attribut de nom correspondant au code HTML.
2. L'attribut ListKey correspond à l'attribut de valeur du code HTML.
3. L'attribut ListValue correspond à l'attribut d'étiquette de code HTML.
4. L'attribut de valeur fait référence à: Lorsque la valeur de la valeur correspond à la valeur de l'ensemble, elle est sélectionnée (si la valeur de la valeur est une chaîne, vous devez ajouter des devis uniques).
Après l'exécution, il sera analysé dans le code HTML, comme indiqué sur la figure:
Expliquons-le à travers un cas:
Lors de la modification de l'utilisateur, passez à l'interface de modification et faites écho au genre de l'utilisateur dans l'interface de modification. Ici, nous utilisons l'énumération pour représenter le sexe.
L'interface utilisateur initiale:
Structure du projet:
Interface utilisateur:
<body> <form action = "enumaction_test.action" method = "post"> Veuillez sélectionner le genre: <s: radio list = "# {'man': 'male', 'women': 'feme'}" name = "sexe" listKey = "key" listValue = "value" value = "'man'" theme = "Simple" /> <preny type = "soumi" value = "soumets"> </ Form> </ body>Code d'action de fond:
classe publique Enumaction {/ * définir le genre, la valeur par défaut est masculine * / privé Gender Sexe = Gender.Man; Gender Gender Gender () {return Gender;} public void setgender (Sexe Gender) {return "Success";}}} Remarque: Parce que nous utilisons les types d'énumération, nous devons effectuer une conversion de type (la méthode de conversion spécifique a été mentionnée dans le blog précédent).
Énumérer le code de classe de conversion du type:
classe publique EnumTypeConverter étend defaultTypeConverter {@SuppressWarnings ("RawTypes") @Override public objet convertValue (map <string, objet> contexte, valeur d'objet, class toty) {/ * converti de la front (String []) Value; return sexe.valueof (params [0]);} else if (totype == string.class) {/ * passe de l'action d'arrière-plan au premier plan, c'est-à-dire convertissant le type de genre en type de chaîne * / * convertissant fermement la valeur en sexe * / genre de genre = (genre) valeur;Définissez le fichier de propriétés pour la conversion de type global:
com.lixue.bean.gender = com.lixue.converter.enumtypeconverter
La page de résultat après le saut (interface de modification de l'utilisateur):
<body> Votre genre: <s: radio list = "# {'man': 'mâle', 'women': 'feme'}" name = "gender" listkey = "key" listValue = "value" value = "Gender" theme = "Simple" /> </ body>Remarque: Comment faire écho au genre actuellement sélectionné dans l'interface de modification? La clé consiste à examiner la valeur de la valeur. J'ai écrit un sexe dans le code ci-dessus. En fait, ce sexe est une propriété définie dans l'action. Lorsque nous avons parlé d'OGNL dans l'article précédent, nous avons dit que les propriétés de l'action seront enregistrées dans la pile de valeur. Nous prenons les propriétés dans la pile de valeur et pouvons être obtenues directement via le nom d'attribut, sans les obtenir via la forme de #Namespace. Après l'avoir obtenu, faites-le correspondre à la collection de cartes précédente pour déterminer s'il faut le vérifier.
1. Certaines personnes peuvent avoir des questions, pourquoi ListKey peut-elle être écrite directement sur la clé, et ListValue est écrit directement sur la valeur.
Réponse: Lorsque Struts2 analyse la collection de liste dans la balise <s: radio>, il utilise Iterator. La fonction d'Iterator est d'enregistrer le résultat (chaque fois qu'un objet d'entrée) en haut de la pile de la pile de valeur chaque fois que la boucle doit obtenir la valeur. Par conséquent, lorsque vous utilisez l'expression OGNL, vous pouvez directement utiliser les noms de l'attribut de l'objet (les noms d'attribut de l'entrée sont des clés et de la valeur) pour obtenir la valeur. Il n'est pas nécessaire d'utiliser l'espace de noms #. Les élèves qui ne comprennent pas l'expression de l'OGNL peuvent lire l'article précédent.
2. Nous constaterons que lorsque nous écrivons des balises, nous écrivons toujours le thème de l'attribut. La fonction de cet attribut consiste à éviter les Struts2 générant un code inutile lors de l'analyse des balises, mais il est nécessaire de l'écrire à chaque fois. N'est-ce pas une arnaque? En fait, nous pouvons configurer un fichier constant dans Strut.xml pour réaliser l'effet:
<! - STUTS2 TAG THEME STYLE -> <constante name = "struts.ui.theme" value = "Simple" />
L'apprentissage de ces frameworks de entretoise est un peu comme voir le ciel bleu à travers les nuages et la brume. J'ai une compréhension plus claire des frameworks Java, du printemps, des mybatis, etc., et tout est connecté. . .
Ce qui précède est tout le contenu de cet article sur l'explication détaillée du bouton radio Struts2 et l'exemple de code de conversion du type d'énumération. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!