1. L'une des façons de modifier les attributs d'action sous la forme de la forme dans l'appel de méthode dynamique DMI a été expliquée. Il existe deux autres types. L'une consiste à modifier l'attribut de méthode dans la balise d'action dans le fichier de configuration de strut.xml pour spécifier l'exécution de différentes méthodes pour gérer différentes logiques métier; L'autre consiste à utiliser les caractères génériques. Pour modifier l'attribut de la méthode, plusieurs actions doivent être configurées et la plupart de ces actions sont définies de la même manière, donc cette définition est assez redondante. Par conséquent, l'utilisation des caractères génériques peut remplacer plusieurs actions traitées logiquement dans une balise d'action.
2. Démonstration: ( Il est similaire à l'appel de méthode dynamique précédent pour modifier l'attribut d'action de formulaire de formulaire, et une petite modification a été apportée au fichier de configuration de strut.xml.)
Les exigences n'ont toujours pas changé. Cliquez sur différents boutons de soumettre pour soumettre le même formulaire et remettre les différents services à la même classe de traitement d'action pour le traitement.
⒈ premier afficher un formulaire, il y a deux boutons de soumission dans le formulaire, mais ils représentent différentes entreprises. L'utilisateur se connecte en cliquant pour se connecter; L'utilisateur se connecte lors du clic pour s'inscrire.
Connexion à user:
Inscription à user:
Le code spécifique est le suivant:
⑴. Connectez-vous à la page d'enregistrement (index.jsp):
<% @ Page Language = "Java" ContentType = "Text / Html; charSet = UTF-8" Pageencoding = "UTF-8"%> <! Doctype HTML Public "- // W3C // DTD HTML 4.01 Transitional // en" "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" contenu-type "contenu =" Text / html; charset = utf-8 "> <script src =" js / jQuery-1.7.2.js "> </ script> type = "text / javascript"> $ (function () {$ ("input: eq (3)"). cliquez (function () {/ * modifie dynamiquement la valeur de l'attribut d'action dans le formulaire pour soumettre la demande enregistrée à la classe d'action * / $ ("# form"). attribut ("Action", "Create");});}); id = "form"> name: <input type = "text" name = "name" /> <br> <br> mot de passe: <input type = "mot de passe" name = "mot de passe" /> <br> <br> <input type = "soumi" value = "login"> <input = "soumi" value = "registre"> </ form> </ body> </ html> ⑵. Code du fichier de configuration de struts.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Struts public "- // APache Software Foundation // Dtd Struts Configuration 2.3 // en" "http://struts.apache.org/dtds/struts-2.3.dtd"> <stretts> <package nom = "myp" extension = "Struts"> <Stretts> <Package Name = "MYP" Extend = "Struts"> <Stretts> <Package Name = "MYP" Extend = "Struts"> <Stretts> <Package Name = "MYP" Extend = "Struts"> <Stretts> <Package Name = "MYP" Extend = "Struts"> <Stretts> <Package Name = "MYP" name = "*" Method = "{1}"> <résultat name = "userlogin"> web-inf / jsp / userlogin.jsp </ résultat> <résultat name = "userRecate"> web-inf / jsp / userCreate.jsp </cult> </ action> </ pack> </ / struts> Analyse:
1. Dans ce fichier de configuration, un caractère générique est configuré pour l'attribut de nom dans la balise d'action: "*", et la valeur de l'attribut de méthode par la suite est: {1}.
2. Cela signifie que lorsque l'utilisateur clique sur le bouton de connexion sur la page index.jsp, la demande Action = "Connexion" dans le formulaire: sera transmise aux entretoises. Étant donné que la configuration des cartes génériques est effectuée dans struts.xml, "*" est considéré comme "connexion", c'est-à-dire name = "connexion". La valeur de méthode suivante est: {1} représente le premier "*", qui est méthode = "login". Struts trouvera donc la méthode de connexion dans la classe Action.Action et l'appellera. Si l'utilisateur clique sur le bouton d'enregistrement, le processus est le même que de cliquer sur le bouton de connexion. Vous pouvez écrire un petit exemple pour en faire l'expérience.
⑶. Classe de code d'action:
Action du package; Import com.opensymphony.xwork2.ActionSupport; La Classion Public Action étend ActionSupport {private String Name; public String getName () {return name;} public void setName (String Name) {this.name = name;} public String Login () {System.out.prindnn ("userlogin"); return "userlog";} public; Create () {System.out.println ("Enregistrement de l'utilisateur"); return "userCreate";}} Bien sûr, l'utilisation de caractères génériques n'est pas seulement aussi simple, mais peut également inclure: "* - *", "book_ *", etc. Ces caractères génériques peuvent être utilisés dans les propriétés de la balise d'action dans le fichier de configuration de struts.xml, tels que Mthod et les attributs de classe, ou dans la balise de résultat, comme suit:
<! - Définir une balise d'action générale -> <action name = "*"> <! - Définir la balise de résultat à l'aide des expressions -> <sult> / web-inf / jsp / {1} .jsp </sult> </ action> Dans la définition d'action ci-dessus, le nom de l'action est A *, donc il peut correspondre à n'importe quelle action. Toutes les demandes sont traitées par cette action. Parce que cette action n'a pas d'attribut de classe, la classe ActionSupport est utilisée pour le gérer. Parce qu'il n'y a pas d'attribut de méthode, la valeur par défaut est la méthode d'exécution et renvoie la chaîne de réussite. De plus, l'attribut de nom dans la balise de résultat est le succès par défaut, donc l'action renvoie toujours directement la ressource JSP spécifiée dans le résultat. Par conséquent, la signification de la définition d'action ci-dessus est: si l'utilisateur demande A.Action, il sautera vers A.JSP; Si B.Action est demandée, elle passera à B.JSP.
Ce qui précède est l'appel de méthode dynamique dans les jambes de force présenté par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!