¿Qué anotaciones se utilizan para el parámetro string.type de springmvc?
Introducción.
@Controller
@Controller es responsable de registrar beans en el contexto Spring. De forma predeterminada, el ID del bean al principio del nombre de la clase está en minúsculas; también puede especificarlo usted mismo de la siguiente manera
Método 1:
@Controller
TestController
TestController es la primera clase registrada en Spring MVC.
Método 2:
@Controller("tmpController")
Clase pública TestController {}
@ RequestMapping
1.@RequestMapping se utiliza para definir la URL de acceso. Puede definir un
@RequestMapping para toda la clase o especificar uno para cada método.
Colocar @RequestMapping en el nivel de clase permite que se use junto con la anotación
@RequestMapping a nivel de método, lo que reduce las opciones.
Por ejemplo:
@RequestMapping("/test")
Clase pública TestController {}
Luego, todos los accesos todas las rutas están bajo /prueba.
2. No es obligatorio utilizar @RequestMapping en toda la clase. Si no está configurado, la configuración de la ruta de acceso de todos los métodos
será completamente independiente e irrelevante.
3. El elemento de parámetro completo es @RequestMapping(value="", método =
{"",""}, headers={},params={"", ""}), cada parámetro se explica a continuación:
valor:String[] Establecer dirección de acceso
método: RequestMethod[] Establecer método de acceso, matriz de caracteres, consulte RequestMethod p>
Clases, incluidas GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE, de uso común
RequestMethod.GET. RequestMethod.POST
Encabezados: los encabezados String[] generalmente se usan en combinación con método = RequestMethod.POST
params: String[] Configuración de parámetros de acceso, matriz de caracteres Por ejemplo: userId= id
4. La configuración de valores también se puede utilizar en forma de variables de plantilla, por ejemplo: @RequestMapping
5: @RequestMapping
(value = " /owners/{ownerId} ", método = RequestMethod.GET), esto se explicará con más detalle en la introducción detallada de @PathVariable
.
5. Al agregar instrucciones adicionales a los parámetros @RequestMapping, puede establecer condiciones de parámetros para limitar
la dirección de acceso. Por ejemplo, cuando se utiliza la expresión params="myParam=myValue". , acceso Los parámetros de la dirección solo pueden
contener el valor especificado "myParam=myValue".
myValue "puede coincidir y también admite expresiones como "myParam"
, lo que indica que la dirección solicitada actual debe contener este parámetro (el valor del parámetro puede ser cualquier valor), y "!myParam " y otras expresiones significa que la dirección solicitada actual no debe contener el
parámetro especificado "myParam".
6. do, *.html, etc., entonces
@RequestMapping no puede definir el valor a nivel de método; de lo contrario, se informará un error, como
código Java
@RequestMapping( "/bbs.do")
clase pública BbsController {
@RequestMapping(params = "method=getList")
cadena pública getList () {
return "lista"
}
@RequestMapping( "/bbs.
@RequestMapping(valor= " /spList")
public String getSpecialList() {
return "splist"
}
}
;Como se muestra en el ejemplo anterior: /bbs.do?method=getList accede al método getList(); acceder a
/bbs.do/spList generará un error
@PathVariable
p>1.@PathVariable se utiliza para parámetros en métodos, lo que indica que los parámetros del método están vinculados a variables de plantilla
en la dirección URL
@RequestMapping(value="/owners/{ownerId}",
method=RequestMethod.GET)
public String findOwner(@ PathVariable String propietarioId, Modelo
modelo) {
Propietario propietario = propietarioService.findOwner(propietarioId
modelo);
}
2.@PathVariable se utiliza cuando se utilizan variables de plantilla {xxx} en la barra de direcciones.
Si @RequestMapping no define una variable como "/{ownerId}", se utiliza @PathVariable.
Usar @PathVariable en un método provocará un error.
@ModelAttribute
1. Aplicado a los parámetros del método, los parámetros se pueden obtener directamente en la página, equivalente a
request.setAttribute(,,,)
p>
2. Aplicado a los métodos, marque cualquier método con un valor de retorno como @ModelAttribute, de modo que
el valor de retorno ingrese a la lista de atributos del objeto modelo. .
3. @ModelAttribute("xx") aplicado a los parámetros del método debe estar asociado con el tipo de datos del objeto
Los tipos de datos básicos como int y String no son aplicables
Ejemplo:
Código Java
@ModelAttribute("items")."items")//<--① Agregar una
Propiedades
Lista pública< String> populateItems() {
Lista<.String> listas = new ArrayList
; listas.add("elemento1");
listas.add("elemento2"
devolver listas
}
}>@RequestMapping(params = "method=listAllBoard")
public String listAllBoard(@ModelAttribute("currUser") Usuario usuario,
modelo ModelMap) {
bbtForumService.getAllBoard();
//<--② Acceda al atributo de elementos en el modelo aquí
System.out.println( " model.items:" ). + ((List
model.get("items")).size()
Devuelve "listBoard"
}
En ①, al usar la anotación @ModelAttribute para acceder al atributo de elementos, se llamará al método populateItem() antes de ejecutar cualquier método de procesamiento de solicitudes. Spring MVC colocará el valor de retorno de este método en el. lista de propiedades de objetos de modelo implícita denominada "elementos
".
Entonces, en ②, podemos acceder a la propiedad items a través de la entrada ModelMap, y cuando se ejecuta el método del controlador de solicitudes
listAllBoard(), ② se imprimirá en la consola
"model.items:2 "Mensaje. Por supuesto, también podemos acceder a la propiedad items del objeto modelo
en la vista solicitada.
@ResponseBody
Esta anotación se puede colocar directamente en el método para indicar que el tipo de retorno se generará directamente como bytes de respuesta HTTP
Salida de flujo (no colocado en el modelo, ni interceptado como el nombre de la página de visualización). Se puede utilizar con ajax.
@RequestParam
@RequestParam es un parámetro opcional, como la anotación @RequestParam("id"), por lo que
será el mismo que el ID de parámetro adjunto al enlace de URL
Si el parámetro entrante es un tipo de datos primitivo (como int, long, float, etc.), el parámetro de solicitud de URL
debe tener un parámetro correspondiente; de lo contrario, se generará
org.springframework.web.util.NestedServletException, lo que indica que nulo no se puede
convertir a un tipo de datos básico.
.
@RequestParam contiene 3 configuraciones @RequestParam(required = ,value="",
defaultValue = "")
required: si el parámetro es obligatorio Complete los parámetros, tipo booleano, opcional, el valor predeterminado es verdadero
valor: si el parámetro es obligatorio, tipo booleano, opcional, el valor predeterminado es verdadero
valor: si el parámetro es obligatorio, Tipo booleano, opcional, predeterminado = "".
valor: nombre del parámetro pasado, tipo de cadena, opcional, si hay un valor, corresponde al parámetro del método de configuración
defaultValue: si no se pasa ningún parámetro, es el valor predeterminado al parámetro Valor especificado
@SessionAttributes Gestión de sesión
Spring nos permite especificar selectivamente qué atributos en ModelMap deben volcarse en
sesión para la siguiente time Estas propiedades son accesibles previa solicitud en la lista de propiedades del ModelMap correspondiente
. Esto se puede lograr utilizando la anotación @SessionAttributes
en la definición de clase. @SessionAttributes solo se puede declarar en clases, no en métodos.
Por ejemplo,
@SessionAttributes("currUser") // Obtiene el atributo con el nombre de atributo currUser en ModelMap
@SessionAttributes({"attr1" , " attr2"})
@ SessionAttributes(tipos = Usuario.clase)
@SessionAttributes(tipos = {Usuario.clase,Depto.clase})
@ SessionAttributes(types = {User.class,Dept.class},value={"attr1", "attr2"})
@CookieValue Obtiene información de cookies
@RequestHeader Obtiene solicitar información de encabezados