• SpringMVC处理模型数据


    目录结构

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        id="WebApp_ID" version="2.5">
    
        <!-- 配置 org.springframework.web.filter.HiddenHttpMethodFilter: 可以把 POST 
            请求转为 DELETE 或 POST 请求 -->
        <filter>
            <filter-name>HiddenHttpMethodFilter</filter-name>
            <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
        </filter>
    
        <filter-mapping>
            <filter-name>HiddenHttpMethodFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
        <!-- 配置 DispatcherServlet -->
        <servlet>
            <servlet-name>dispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!-- 配置 DispatcherServlet 的一个初始化参数: 配置 SpringMVC 配置文件的位置和名称 -->
            <!-- 实际上也可以不通过 contextConfigLocation 来配置 SpringMVC 的配置文件, 而使用默认的. 默认的配置文件为: 
                /WEB-INF/<servlet-name>-servlet.xml -->
            <!-- <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> 
                </init-param> -->
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>dispatcherServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    
    </web-app>

    dispatcherServlet-servlet.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
        <!-- 配置自定扫描的包 -->
        <context:component-scan base-package="com.springmvc"></context:component-scan>
    
        <!-- 配置视图解析器: 如何把 handler 方法返回值解析为实际的物理视图 -->
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/views/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    
        <!-- 配置视图 BeanNameViewResolver 解析器: 使用视图的名字来解析视图 -->
        <!-- 通过 order 属性来定义视图解析器的优先级, order 值越小优先级越高 -->
        <bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
            <property name="order" value="100"></property>
        </bean>
    
        <!-- 配置国际化资源文件 -->
        <!-- 
        <bean id="messageSource"
            class="org.springframework.context.support.ResourceBundleMessageSource">
            <property name="basename" value="i18n"></property>
        </bean>
     -->
        <!-- 配置直接转发的页面 -->
        <!-- 可以直接相应转发的页面, 而无需再经过 Handler 的方法. -->
        <!-- <mvc:view-controller path="/success" view-name="success" /> -->
    
        <!-- 在实际开发中通常都需配置 mvc:annotation-driven 标签 -->
        
        
        <mvc:annotation-driven></mvc:annotation-driven>
    
    </beans>

    test

    package com.springmvc;
    
    import java.io.IOException;
    import java.io.Writer;
    import java.util.Arrays;
    import java.util.Date;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.CookieValue;
    import org.springframework.web.bind.annotation.ModelAttribute;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestHeader;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.SessionAttributes;
    import org.springframework.web.servlet.ModelAndView;
    
    import com.springmvc.entities.User;
    
    @SessionAttributes(value = { "user" }, types = { String.class }) // user为键 和string类型的放入session中
    @RequestMapping("/springmvc")  
    @Controller
    public class SpringMVCTest {
    
        private static final String SUCCESS = "success";
    
        @RequestMapping("/testSessionAttributes")
        public String testSessionAttributes(Map<String, Object> map) {
            User user = new User("Tom", "123456", "tom@aaaa.com", 15);
            map.put("user", user);
            map.put("school", "yp");
            return SUCCESS;
        }
    
        @RequestMapping("/testMap")
        public String testMap(Map<String, Object> map) {
            System.out.println(map.getClass().getName());
            map.put("names", Arrays.asList("AA", "BB", "CC"));
            return SUCCESS;
        }
    
        @RequestMapping("/testModelAndView")
        public ModelAndView testModelAndView() {
            String viewName = SUCCESS;
            ModelAndView modelAndView = new ModelAndView(viewName);
    
            modelAndView.addObject("modelAndView", "testModelAndView");
    
            return modelAndView;
        }
    }

    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="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <a href="springmvc/testModelAndView">testModelAndView</a>
        
        <a href="springmvc/testMap">testMap</a>
        
        <a href="springmvc/testSessionAttributes">testSessionAttributes</a>
    </body>
    </html>

    success.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="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        ModelAndView :${requestScope.modelAndView}
        <br><br>
        
        Map: ${requestScope.names}
        <br><br>
        
        SessionAttributes:
        ${sessionScope.user.username}
        <br>
        School:${sessionScope.school}
        
        
        
        
    </body>
    </html>
  • 相关阅读:
    ASP.NET Web API +Swagger创建与汉化生成 API说明文档
    Apple 开发者账号 All In One
    CS50 2022 All In One
    TypeScript private field All In One
    js RegExp test bug All In One
    vite preview not work All In One
    Flutter Resources All In One
    table 组件性能优化 All In One
    Stanford CS193p All In One
    Swift 5.x bug All In One
  • 原文地址:https://www.cnblogs.com/lusufei/p/7396192.html
Copyright © 2020-2023  润新知