1.logique : vide
La balise logic:empty est utilisée pour déterminer si elle est vide. S'il est vide, le contenu intégré dans le corps de la balise sera traité. Cette balise est utilisée dans les situations suivantes :
Lorsque l'objet Java est null Lorsque l'objet String est "" Lorsque isEmpty() dans l'objet java.util.Collection renvoie true Lorsque isEmpty() dans l'objet java.util.Map renvoie true L'exemple de code suivant illustre la logique : La balise vide détermine si la personne chargée de la collecte est vide :
<logic:empty name="listForm" property = "persons">
<div>La collection personnes est vide !</div>
</logic:vide>
2.logique : notEmpty
L'application de cette balise est exactement à l'opposé de la balise logic:empty.
3.logique : égal
Cette balise est l’opérateur de comparaison égal.
Par exemple, 1. Comparez l'attribut d'état de l'utilisateur pour voir s'il est 1. S'il est 1, affichez « activé » ;
Par exemple, 2. Si la valeur dans l'exemple ci-dessus est obtenue dynamiquement, par exemple, elle doit être sortie via bean:write, car struts ne prend pas en charge l'imbrication d'étiquettes, EL peut être utilisé pour résoudre ce problème.
logique:égal
Ce que nous voulons introduire ici n'est pas seulement la balise logic:equal(=), mais un type de balises qui effectuent des opérations de comparaison, notamment :
logique:égal(=)
logique:notEqual(!=)
logique:plus grandEqual(>=)
logique:moinsEqual(<=)
logique:râpeThan(>)
logique:moinsThan(<)
L'utilisation de ce type de balise est similaire. Nous introduisons uniquement la balise logic:equal et vous laissons le reste.
logic:equal est utilisé pour déterminer s'ils sont égaux. S'il est égal, le contenu intégré dans le corps de la balise sera traité. Cette balise est utilisée dans les situations suivantes :
Compare si la valeur du cookie spécifiée par l'attribut cookie de cette balise est égale à la valeur de l'attribut value de cette balise.
Compare si la valeur de l'en-tête spécifiée par l'attribut header de la balise est égale à la valeur de l'attribut value de la balise.
Compare si le Bean JSP spécifié par l'attribut name de la balise est égal à l'attribut value de la balise (l'attribut property n'apparaît pas) ou compare si la valeur de l'attribut property du Bean JSP spécifiée par l'attribut name de la balise est égal à l'attribut value de la balise Les valeurs sont égales.
Compare si la valeur du paramètre spécifiée par l'attribut paramètre de la balise (dans la demande) est égale à l'attribut valeur de la balise.
4. logique:notEqual
La signification de cette balise est opposée à logic:equal, et son utilisation est similaire, ce qui est omis.
5. logique : en avant
Cette balise est utilisée pour implémenter le guidage de page et trouver le transfert global des fichiers de configuration. Redirection globale dans le fichier struts-config.xml
par exemple. <logic:forward name="redirect"/>
6. logique:plus grandÉgal
Est l'opérateur de comparaison supérieur ou égal.
Par exemple, lorsque le score d'un élève est supérieur ou égal à 60, affichez « réussite » :
<logic:greaterEqual name="student" property="scores" value="60">
passer
</logic:greaterEqual>
7. logique : plus grand que
Il s'agit de l'opérateur de comparaison supérieur à, et son utilisation est la même que logic:greaterEqual;
8. logique:moinsÉgal
Il s'agit d'un opérateur de comparaison inférieur ou égal, et son utilisation est la même que logic:greaterEqual;
9. logique : moins que
Il s'agit d'un opérateur de comparaison inférieur à, et son utilisation est la même que logic:greaterEqual;
10. logique : correspondance
Cette balise compare les objets pour vérifier leur égalité ;
La balise logic:match est utilisée pour gérer les problèmes de correspondance de sous-chaînes.
Si la valeur spécifiée correspond à la balise, le contenu de son corps de balise sera créé. Cette balise est utilisée dans les situations suivantes :
Vérifie si le cookie portant le nom spécifié correspond à la valeur de cette balise.
Vérifie si l'en-tête avec le nom spécifié correspond à la valeur de cette balise.
Vérifie si le Bean JSP portant le nom spécifié correspond à la valeur de la balise ou vérifie si la valeur de l'attribut de propriété dans le Bean JSP portant le nom spécifié correspond à la valeur de la balise.
Vérifie si la valeur du paramètre du nom spécifié dans la requête correspond à la valeur de la balise.
Le code suivant illustre l'utilisation typique de la balise logic:match :
par exemple0.
12. logique: messagePrésent
Cette balise est utilisée pour déterminer si l'objet ActionMessages/ActionErrors existe ;
La balise logic:messagesPresent est utilisée dans les situations suivantes :
Il existe un objet ActionMessages dans la portée de la demande et l'attribut de propriété de l'étiquette correspond à la propriété dans ActionMessages.
Il existe un objet ActionErrors dans la portée de la demande et l'attribut de propriété de l'étiquette correspond à la propriété dans ActionErrors.
Il existe un objet String, convertissez-le (construisez-le) en ActionMessage, puis ajoutez-le à ActionMessages.
Il existe un objet String Array, convertissez chaque chaîne du tableau en ActionMessage, puis ajoutez-le à ActionMessages.
Lorsque la valeur de l'attribut message de la balise est vraie, Globals.MESSAGE_KEY sera utilisée comme clé pour rechercher Message dans la portée de la requête. Dans d'autres cas, la valeur de name sera utilisée comme clé pour rechercher If name. n'apparaît pas, la valeur par défaut est Globals.ERROR_KEY.
Le code suivant illustre l'utilisation typique de la balise logic:messagesPresent :
par exemple1.
14. logique : présent
Cette balise permet de déterminer si les paramètres passés par l'objet requête existent.
Si la valeur spécifiée apparaît, la balise créera le contenu de son corps de balise. Cette balise est utilisée dans les situations suivantes :
Vérifie si un cookie portant le nom spécifié est présent.
Vérifie si un en-tête avec le nom spécifié apparaît.
Vérifie si le Bean JSP portant le nom spécifié apparaît ou vérifie si l'attribut de propriété dans le Bean JSP portant le nom spécifié apparaît.
Vérifiez si le paramètre avec le nom spécifié dans la demande apparaît.
Vérifie si l'utilisateur actuellement authentifié est associé au rôle de sécurité spécifié.
Vérifie si le sujet actuellement authentifié porte le nom spécifié.
Par exemple1. Lorsque l'objet utilisateur et son attribut de nom existent dans la requête, la chaîne correspondante est affichée :
Voyons la différence entre ces deux actions :
Le transfert est exécuté à l'intérieur du servlet. Le navigateur ne sera pas du tout conscient de cette action et l'URL d'origine ne changera pas si le navigateur est rechargé, il répétera simplement la demande d'origine.
La redirection est divisée en deux étapes : la première étape est que l'application Web indique au navigateur la deuxième URL, puis le navigateur envoie une requête à la deuxième URL.
La redirection est plus lente que la transmission car le navigateur doit faire une deuxième requête. Notez également que les beans dans la portée de la première requête (portée de la requête) ne sont pas visibles par la deuxième requête.
Après avoir compris les différences décrites ci-dessus, vous saurez quand utiliser la balise logic:forward et quand utiliser la balise logic:redirect.
La balise logic:forward complète PageContext.forward() ou HttpServletResponse.sendRedirect(). Le choix est déterminé par le contrôleur. La balise logic:redirect complète HttpServletResponse.sendRedirect().
Lorsque vous utilisez la balise logic:redirect, nous pouvons construire les paramètres baseurl et query tout comme en utilisant html:link. Si vous êtes intéressé, vous pouvez vous référer à la balise html:link.