Le passage des paramètres signifie le transfert de paramètres à l'arrière-plan du programme. L'arrière-plan peut effectuer un certain traitement, puis enregistrer le contenu dans la base de données.
Il existe de nombreuses méthodes pour passer des paramètres, comme expliqué un par un.
1. Méthode des paramètres directs en action
Il y a le fichier index.jsp suivant
La copie de code est la suivante: <? Xml version = "1.0" Encoding = "GB18030"?>
<% @ Page Language = "Java" ContentType = "Text / HTML; Charset = GB18030"
Pageencoding = "GB18030"%>
<%
String path = request.getContextPath ();
String basepath = request.getscheme () + ": //" + request.getServerName () + ":" + request.getServerport () + path + "/";
%>
<! Doctype html public "- // w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<adal>
<meta http-equiv = "contenu-type" content = "text / html; charset = gb18030" />
<base href = "<% = baspath%>" />
<Title> Insérer le titre ici </TITME>
</ head>
<body>
Utilisez l'attribut d'action pour recevoir le paramètre <a href = "utilisateur / utilisateur! Ajouter? Name = a & Âge = 8"> Ajouter un utilisateur </a>
</docy>
</html>
Pour <a> </a>, passez deux paramètres au programme, l'un est le nom et l'autre est l'âge. La configuration dans strut.xml est la suivante:
Copiez le code de code comme suit: <? Xml version = "1.0" Encoding = "utf-8"?>
<! Doctype Struts public
"- // Foundation du logiciel Apache // Dtd Struts Configuration 2.0 // en"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<routs>
<constante name = "strut.devmode" value = "true" />
<package name = "user" étend = "struts-default" namespace = "/ user">
<action name = "user">
<Sult> /User_Add_Success.jsp </ Résultat>
</action>
</ package>
</rutts>
Comment rédiger notre utilisateur pour le moment? Les exemples sont les suivants:
La copie de code est la suivante: package com.bjsxt.struts2.user.action;
Importer com.opensymphony.xwork2.actionsupport;
classe publique UserAction étend ActionSupport {
nom de chaîne privé;
Âge privé;
Public String Add () {
System.out.println ("name =" + name);
System.out.println ("Age =" + Age);
retourner le succès;
}
public String getName () {
nom de retour;
}
public void setName (nom de chaîne) {
this.name = name;
}
public int getage () {
âge de retour;
}
Setage du public public (Int Age) {
this.age = âge;
}
}
C'est très simple, il définit deux propriétés. Remarque: Les méthodes d'ensemble et d'obtention de ces deux propriétés doivent être écrites, et la méthode de génération rapide d'Eclipse est utilisée, ce qui est très simple. De cette façon, le programme ci-dessus imprimera le résultat souhaité lorsqu'il est exécuté
Nom = A et Age = 8.
L'explication est la suivante: Premièrement, Struts2 passera automatiquement les paramètres, et nous n'avons pas besoin de participer à ce processus; Deuxièmement, les fruts passent les paramètres pour définir et obtenir des méthodes, pas des attributs de nom et d'âge. C'est-à-dire que si nous modifions le nom de celle-ci à d'autres noms, tels que le nom d'utilisateur, mais que les méthodes sont toujours SetName et GetName, il n'y a pas de différence entre l'implémentation de la fonction entière, c'est juste un peu gênant; Troisièmement, et le point le plus important est que s'il existe de nombreux attributs, nous avons besoin de beaucoup de méthodes d'ensemble et d'obtention, ce qui est très gênant, donc la méthode suivante est étendue.
2. Action Ajouter une méthode d'objet de classe
Pour le moment, les propriétés de notre 1 sont toutes classées en classe, comme l'utilisateur
La copie de code est la suivante: package com.bjsxt.struts2.user.model;
classe publique User {
nom de chaîne privé;
Âge privé;
public String getName () {
nom de retour;
}
public void setName (nom de chaîne) {
this.name = name;
}
public int getage () {
âge de retour;
}
Setage du public public (Int Age) {
this.age = âge;
}
}
Cela rend l'écriture en cours d'action beaucoup plus facile
La copie de code est la suivante: package com.bjsxt.struts2.user.action;
import com.bjsxt.struts2.user.model.user;
Importer com.opensymphony.xwork2.actionsupport;
classe publique UserAction étend ActionSupport {
utilisateur utilisateur privé;
Public String Add () {
System.out.println ("name =" + user.getName ());
System.out.println ("age =" + user.getage ());
retourner le succès;
}
utilisateur public getuser () {
RETOUR UTILISATEUR;
}
public void SetUser (utilisateur utilisateur) {
this.user = utilisateur;
}
}
Remarque: Pour le moment, nous n'avons pas besoin de générer manuellement un objet utilisateur nous-mêmes. Ce processus est automatiquement terminé par Struts2.
Et l'URL doit être modifiée pour le moment, c'est-à-dire que la balise <a> </a> dans l'index est modifiée:
La copie de code est la suivante: <? Xml version = "1.0" Encoding = "GB18030"?>
<% @ Page Language = "Java" ContentType = "Text / HTML; Charset = GB18030"
Pageencoding = "GB18030"%>
<%
String path = request.getContextPath ();
String basepath = request.getscheme () + ": //" + request.getServerName () + ":" + request.getServerport () + path + "/";
%>
<! Doctype html public "- // w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<adal>
<meta http-equiv = "contenu-type" content = "text / html; charset = gb18030" />
<base href = "<% = baspath%>" />
<Title> Insérer le titre ici </TITME>
</ head>
<body>
Utilisez le modèle de domaine pour recevoir des paramètres <a href = "user / user! Add? User.name = a & user.age = 8"> Ajouter un utilisateur </a>
</docy>
</html>
Modifiez dans la section de 18 lignes ci-dessus.
Ce qui précède décrit deux méthodes de passage des paramètres Struts2, la deuxième méthode est appelée: DomainModel, modèle de domaine. Autrement dit, créer une nouvelle classe pour stocker les attributs.
Une autre méthode est décrite ci-dessous, appelée modèle, axée sur le modèle.
Il est très similaire à la deuxième méthode, et les autres sont les mêmes, sauf qu'il existe une différence entre l'action et l'accès. Son action est la suivante:
La copie de code est la suivante: package com.bjsxt.struts2.user.action;
import com.bjsxt.struts2.user.model.user;
Importer com.opensymphony.xwork2.actionsupport;
Importer com.opensymphony.xwork2.modeLinved;
La classe publique UserAction étend ActionSupport implémente ModelDriven <User> {
Utilisateur utilisateur privé = nouveau utilisateur ();
Public String Add () {
System.out.println ("name =" + user.getName ());
System.out.println ("age =" + user.getage ());
retourner le succès;
}
@Outrepasser
utilisateur public getModel () {
RETOUR UTILISATEUR;
}
}
Nous pouvons voir à partir de cela qu'il met en œuvre l'interface modélisée et adopte la technologie générique. De cette façon, Struts2 n'instançait pas automatiquement un objet, nous ne pouvons donc le générer manuellement. Il remplace la méthode getModel () de l'interface modèle, et sa fonction est de renvoyer un objet de classe.
Son accès est différent de la seconde (comme dans la première méthode):
Copiez le code du code comme suit: Utilisez ModelDriven pour recevoir les paramètres <a href = "utilisateur / utilisateur! Ajouter? Name = a & Âge = 8"> Ajouter un utilisateur </a>
Il n'utilise pas la méthode user.name, c'est pourquoi il est nécessaire de nouveau un objet.
Le processus idéologique de base de cette méthode est: Premièrement, l'action analyse l'URL, obtient les paramètres, puis entre dans l'action. On constate que cette action met en œuvre une interface modélisée. À l'heure actuelle, la méthode GetModel de l'interface ModelDriven est appelée pour obtenir l'objet de classe, puis l'ensemble et les méthodes de cette classe sont appelés pour transmettre les paramètres.
Cette méthode reflète l'idée MVC du modèle Struts2, M ---, V --- View, C --- Controller, mais cette méthode est rarement utilisée, et la deuxième méthode que nous utilisons le plus est celle ci-dessus.
Ce qui précède est le contenu complet de la méthode de livraison des paramètres dans Struts2. J'espère que cela pourra vous donner une référence et j'espère que vous pourrez soutenir Wulin.com plus.