SpringMVC aprendizaje (tres) datos de solicitud entrantes y salientes
1. Transferencia de datos
Los datos del front-end se transfieren al back-end
1.1, anotación @RequestParam
Método de anotación @ResquestParame inútil
@RequestMapping("/hello")
public String hello(String name){
System.out.println(name);
return "hello";
}
El método de entrada de datos en la página web: http: // localhost: 8080 / hola nombre = canción debe ser coherente con el nombre del parámetro en el método
Si se utiliza la anotación @ResqusetParmae
@RequestMapping("/hello")
public String hello(@RequestParam("username") String name){
System.out.println(name);
return "hello";
}
El método de entrada de datos en la página web: http: // localhost: 8080 / hello? Username = song puede ser definido por usted mismo puede ser inconsistente con el nombre del parámetro en el método
@Controller
public class HelloController {
/**
* @RequestParam 获取请求的参数,参数默认必须要带
* value 指定的key
* required 参数是否必须带
* defaultValue 默认参数的值
* @param username
* @return
*/
@RequestMapping("/handle01")
public String helloHandle(
@RequestParam(value = "user",required = false,defaultValue = "no no ")String username
, @RequestHeader("User-Agent") String userAgent){
System.out.println("这个变量值:"+username);
System.out.println("请求头中浏览器的信息:"+userAgent);
return "success";
}
}
- Utilice @RequestParam en el parámetro de entrada del método de procesamiento para pasar los parámetros de solicitud al método de solicitud
- valor: nombre del parámetro
- requerido: ¿Es necesario? El valor predeterminado es verdadero, lo que significa que el parámetro de solicitud debe contener el parámetro correspondiente, si no existe, se lanzará una excepción
- defaultValue: el valor predeterminado, que se utiliza cuando no se pasan parámetros
Usa pojo como parámetro
@RequestMapping("/user")
public String user(User user){
System.out.println(user);
return "hello";
}
Método de entrada de datos en la página web: http: // localhost: 8080 / user? Name = song & age = 19
2. Salida de datos
Visualización de datos en la parte delantera
2.1, la descripción de los datos del modelo de salida SpringMVC
- ModelAndView : cuando el tipo de valor de retorno del método de procesamiento es ModelAndView, el cuerpo del método puede agregar datos del modelo a través del objeto
- Mapa y modelo : cuando los parámetros de entrada son org.springframework.ui.Model, org.springframework.ui.ModelMap o java.uti.Map, cuando el método de procesamiento regrese, los datos del mapa se agregarán automáticamente al modelo.
- @SessionAttributes : almacena temporalmente un atributo en el modelo en HttpSession para que este atributo se pueda compartir entre varias solicitudes
- @ModelAttribute : después de que se marque la anotación en el parámetro de entrada del método, el objeto del parámetro de entrada se colocará en el modelo de datos
Uso de ModelAndView
@RequestMapping("/hello")
public ModelAndView testModelAndView(){
System.out.println("testModelAndView");
String viewName = "success";
ModelAndView mv = new ModelAndView(viewName );
mv.addObject("time",new Date().toString()); //实质上存放到request域中
return mv;
}
Uso de modelo y modelo
@RequestMapping("/hello")
public String hello(@RequestParam("username") String name, Model model,ModelMap modelmap){
//封装要显示到视图中的数据
//相当于req.setAttribute("name",name);
model.addAttribute("msg",msg);
model.addAttribute("name",name);
System.out.println(msg);
System.out.println(name);
return "test";
}
3. Resuelve el problema de los caracteres confusos chinos
método uno
Escribe tu propio filtro Filtro
public class CharacterEndoingFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//解决乱码问题
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
servletResponse.setContentType("text/html;charset=utf-8");
filterChain.doFilter(servletRequest,servletResponse);
}
public void destroy() {
}
}
Registrarse en web.xml
<filter>
<filter-name>ShowFilter</filter-name>
<filter-class>com.song.filter.CharacterEndoingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ShowFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Método dos
Utilice los filtros proporcionados en springmvc
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Camino tres
Puede encontrar formas de resolver la mayoría de los problemas confusos en Internet
Puede consultar la documentación oficial de SpringMVC usted mismo
Aprendizaje recomendado SpringMVC video B station mad God said java or still in Silicon Valley
¡Gracias a todos por leer! Si hay un error en lo anterior, corríjalo