Pasar el parámetro significa transferir parámetros a los antecedentes del programa. Los antecedentes pueden hacer algún procesamiento y luego guardar el contenido en la base de datos.
Hay muchos métodos para pasar los parámetros, como se explica uno por uno.
1. Método de parámetro directo en acción
Existe el siguiente archivo index.jsp
La copia del código es la siguiente: <? Xml versión = "1.0" encoding = "gb18030"?>
<%@ page lenguaje = "java" contentType = "text/html; charset = gb18030"
PageEncoding = "GB18030"%>
<%
String ruta = request.getContextPath ();
String basepath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerPort ()+ruta+"/";
%>
<! DocType html public "-// w3c // dtd xhtml 1.0 Transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transicional.dtd ">
<html xmlns = "http://www.w3.org/1999/xhtml">
<Evista>
<meta http-oquiv = "content-type" content = "text /html; charset = gb18030" />
<base href = "< %= basepath %>"/>
<title> Insertar título aquí </title>
</ablo>
<Body>
Use el atributo de acción para recibir el parámetro <a href = "user/usuario! Add? Name = a & age = 8"> Agregar usuario </a>
</body>
</html>
Para <a> </a>, pase dos parámetros al programa, uno es el nombre y el otro es la edad. La configuración en Struts.xml es la siguiente:
Copie el código de código de la siguiente manera: <? Xml versión = "1.0" encoding = "utf-8"?>
<! Doctype Struts Public
"-// Apache Software Foundation // DTD Struts Configuration 2.0 // EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<TRUTS>
<constant name = "struts.devmode" value = "true" />
<paquete name = "user" extends = "struts-default" namespace = "/user">
<Action Name = "User">
<resultado> /user_add_success.jsp </resultado>
</acción>
</paquete>
</truts>
¿Cómo debemos escribir nuestra acción de usuario en este momento? Los ejemplos son los siguientes:
La copia del código es la siguiente: paquete com.bjsxt.struts2.user.action;
import com.opensymphony.xwork2.ActionSupport;
Public Classationation extiende ActionSupport {
nombre de cadena privada;
edad privada int;
public String add () {
System.out.println ("name =" + name);
System.out.println ("Age =" + Age);
devolver el éxito;
}
public String getName () {
nombre de retorno;
}
public void setName (nombre de cadena) {
this.name = name;
}
public int getage () {
edad de retorno;
}
Public void setage (int a age) {
this.age = edad;
}
}
Es muy simple, define dos propiedades. NOTA: Se deben escribir los métodos establecidos y get de estas dos propiedades, y se utiliza el método de generación rápida de Eclipse, lo cual es muy simple. De esta manera, el programa anterior imprimirá el resultado deseado cuando se ejecute
nombre = A y edad = 8.
La explicación es la siguiente: primero, Struts2 pasará automáticamente los parámetros, y no necesitamos participar en este proceso; En segundo lugar, los puntales pasan los parámetros para establecer y obtener métodos, no atributos de nombre y edad. Es decir, si modificamos el nombre en él a otros nombres, como el nombre de usuario, pero los métodos aún son setname y getName, no hay diferencia entre la implementación de toda la función, es un poco incómodo; Tercero, y el punto más importante es que si hay muchos atributos, necesitamos muchos métodos establecidos y obtenidos, lo cual es muy inconveniente, por lo que se extiende el siguiente método.
2. Acción Agregar método de objeto de clase
En este momento, las propiedades en nuestro 1 se clasifican en una clase, como el usuario
La copia del código es la siguiente: paquete com.bjsxt.struts2.user.model;
Usuario de clase pública {
nombre de cadena privada;
edad privada int;
public String getName () {
nombre de retorno;
}
public void setName (nombre de cadena) {
this.name = name;
}
public int getage () {
edad de retorno;
}
Public void setage (int a age) {
this.age = edad;
}
}
Esto hace que la escritura en la clase de acción sea mucho más fácil
La copia del código es la siguiente: paquete com.bjsxt.struts2.user.action;
import com.bjsxt.struts2.user.model.user;
import com.opensymphony.xwork2.ActionSupport;
Public Classationation extiende ActionSupport {
Usuario privado de usuario;
public String add () {
System.out.println ("name =" + user.getName ());
System.out.println ("Age =" + user.getage ());
devolver el éxito;
}
Usuario público getUser () {
devolver el usuario;
}
public void setUser (usuario de usuario) {
this.user = usuario;
}
}
Nota: En este momento, no necesitamos generar manualmente un objeto de usuario nosotros mismos. Este proceso se completa automáticamente por Struts2.
Y la URL debe modificarse en este momento, es decir, la etiqueta <a> </a> en el índice se modifica:
La copia del código es la siguiente: <? Xml versión = "1.0" encoding = "gb18030"?>
<%@ page lenguaje = "java" contentType = "text/html; charset = gb18030"
PageEncoding = "GB18030"%>
<%
String ruta = request.getContextPath ();
String basepath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerPort ()+ruta+"/";
%>
<! DocType html public "-// w3c // dtd xhtml 1.0 Transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transicional.dtd ">
<html xmlns = "http://www.w3.org/1999/xhtml">
<Evista>
<meta http-oquiv = "content-type" content = "text /html; charset = gb18030" />
<base href = "< %= basepath %>"/>
<title> Insertar título aquí </title>
</ablo>
<Body>
Use el modelo de dominio para recibir parámetros <a href = "user/user! Add? User.name = a & user.age = 8"> Agregar usuario </a>
</body>
</html>
Modificar en la sección de 18 líneas anterior.
Lo anterior describe dos métodos de paso de parámetros STRUTS2, el segundo método se llama: Modelo de dominio de dominio. Es decir, cree una nueva clase para almacenar atributos.
Otro método se describe a continuación, llamado ModelDiven, impulsado por el modelo.
Es muy similar al segundo método, y los otros son iguales, excepto que hay una diferencia entre la acción y el acceso. Su acción es la siguiente:
La copia del código es la siguiente: paquete com.bjsxt.struts2.user.action;
import com.bjsxt.struts2.user.model.user;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.modeldriven;
Public Classation Actuals extiende ActionSupport implementa ModelDriven <serve> {
usuario privado user = nuevo usuario ();
public String add () {
System.out.println ("name =" + user.getName ());
System.out.println ("Age =" + user.getage ());
devolver el éxito;
}
@Anular
Usuario público getModel () {
devolver el usuario;
}
}
Podemos ver a partir de esto que implementa la interfaz ModelDiven y adopta tecnología genérica. De esta manera, Struts2 no instanciará automáticamente un objeto, por lo que solo podemos generarlo manualmente. Anula el método getModel () de la interfaz ModelDriven, y su función es devolver un objeto de clase.
Su acceso es diferente del segundo (como en el primer método):
Copie el código del código de la siguiente manera: use ModelDiven para recibir los parámetros <a href = "Usuario/usuario! Add? Name = A & Age = 8"> Agregar usuario </a>
No utiliza el método user.ame, por lo que es necesario nuevo un objeto.
El proceso ideológico básico de este método es: Primero, la acción analiza la URL, obtiene los parámetros y luego ingresa a la acción. Se encuentra que esta acción implementa una interfaz con motor modelado. En este momento, el método GetModel de la interfaz ModelDiven se llama para obtener el objeto de clase, y luego los métodos establecidos y obtenidos de esta clase están llamados a pasar los parámetros.
Este método refleja la idea MVC de Struts2, M --- Modelo, V --- View, Controlador C ---, pero este método rara vez se usa, y el segundo método que más usamos es lo anterior.
Lo anterior es todo el contenido del método de entrega de parámetros en Struts2. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.