zoukankan      html  css  js  c++  java
  • SpringMVC框架的学习(二)

    通过注解的方式来代替配置信息

    1首先我们需要导入aop的jar包 之后在Eclipse中的help中market 搜索springtools的工具

    2之后我们需要在springmvc的配置文件(xml)加入下面代码

    <context:component-scan base-package="com.zhiyou100.xth.controller"></context:component-scan>
    
    

    <!-- 开启注解驱动 -->
    <!-- 配置图形解析器 -->
    <mvc:annotation-driven/>

    <!--释放静态资源 -->

    <mvc:default-servlet-handler/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="prefix" value="/WEB-INF/view/"/>
    <property name="suffix" value=".jsp"/>

    </bean>

    其中<context>标签中是包扫描扫描controller类所在的包  <mvc>标签中的是 开启注解驱动

    静态资源的映射关系

    其中的释放静态资源是指下面<url-pattern>*.do</url-pattern>标签中后缀为才会进入 所以我们换成“/”表示任何强请求都要经过DispatcherServlet需要在Spring配置<mvc:default-servlet-handler/>称为释放静态资源

    <filter>
            <filter-name>setEncoding</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>setEncoding</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    	<servlet>
    		<servlet-name>SpringMVC</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<init-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>classpath:springmvc-servlet.xml</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    
    	<!-- Map all requests to the DispatcherServlet for handling -->
    	<servlet-mapping>
    		<servlet-name>SpringMVC</servlet-name>
    		<url-pattern>/</url-pattern>
    	</servlet-mapping>

    上面的<filter>标签中是SpringMVC中提供的过滤器

    其中红线标注的不能更改为固定值<param-value>标签中的uft-8可以变换成别的编码

    创建的Controller类

     

    最后提及一下SpriingMVC中完成接收下参数

    其中最为特殊的是我们提交参数的是日期的情况下会产生400 的问题

    下面提供了俩种方法

    1:  initBinds(当你接受时间参数为时间类型先经过该方法进行处理)比较适合单给时间日期

    @InitBinder
        public void initBinder(ServletRequestDataBinder binder){
    		//只要网页中传来的数据格式为yyyy-MM-dd 就会转化为Date类型
            binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),
                    true));
        }
    

    2: 在实体类中  

     其中pattern中接收的参数格式不是输出格式

  • 相关阅读:
    发现个atan2的正确使用方式
    Forward+ Shading架构
    fatal: unable to connect to gitee.com: gitee.com[0: 180.97.125.228]: errno=Unknown error 解决方案
    HDFS HA(高可用性)集群规划
    如何使用RTP引擎对语音编码进行转码
    关于 Angular 应用 tsconfig.json 中的 target 属性
    浅谈 Orbeon form builder 的权限控制
    关于 Angular 应用 tsconfig.json 中的 lib 属性
    orbeon form 通过 url 的方式同第三方应用集成的开发明细
    orbeon form 的配置介绍
  • 原文地址:https://www.cnblogs.com/meifanghua/p/11455618.html
Copyright © 2011-2022 走看看