SpringMVC+Spring+mybatis的新手学习之旅

SpringMVC+Spring+mybatis的新手学习之旅

SSM架构是平时常用的架构之一。将Bean交由Spring容器来管理,实现代码低耦合的效果。此文章是自己学习搭建SSM架构时的一些经验与问题总结。
问题一:
jdbc.properties 文件中 数据库 username属性冲突问题。
开始时 在jdbc.properties文件中 配置 username=root password=root.
报错提示 Hp@localhost 密码错误。后来查证 在springcontext.xml文件中 使用El表达式${username} 取到的值为 windows本机名 与 jdbc.properties 的username 冲突。故需将username重新取名例如取为jdbc.username。
问题二:页面返回可以到.jsp,不可返回到.html
因为在servlet配置中 / 当 在controller返回为 .html时 又会再次 到controller 中 查找是否有以该.html的RequestMapping.显然是没有该RequestMapping的故报404.
会有人有疑问 为什么jsp就可以正常返回呢? 因为在tomcat的配置文件中 web.xml中有对*.jsp文件的配置。故 解决办法有三种:
1.在tomcat的web.xml 文件中 将 *.html
2.在项目的web.xml 中加入,使.html 不使用dispacterServlet

  <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

或者 将返回的jsp设置为html

   <jsp-config>
        <jsp-property-group>
            <url-pattern>*.html</url-pattern>
            <el-ignored>false</el-ignored>
        <page-encoding>UTF-8</page-encoding>
            <scripting-invalid>false</scripting-invalid>
        <is-xml>false</is-xml>
        </jsp-property-group>
    </jsp-config>

问题三:返回json问题
平时使用时,都是使用返回给前端 ModelAndView或者是json字符串。
为使代码方便,不用在来回转化,我想自己返回JsonObject 或者对象呢
那我们就需要如下配置

  <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"></bean>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <!--用于解决IE兼容性问题 解决IE可能会下载JSON文件 -->
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

如下 一个简单的SSM框架就搭建完成了

项目目录结构

目录结构

web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

 <context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:springcontext.xml</param-value>
 </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- 配置编码-->
    <filter>
        <filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-web.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
  <!--解决返回html文件 方法一 -->
    <!--<jsp-config>-->
        <!--<jsp-property-group>-->
            <!--<url-pattern>*.html</url-pattern>-->
            <!--<el-ignored>false</el-ignored>-->
        <!--<page-encoding>UTF-8</page-encoding>-->
            <!--<scripting-invalid>false</scripting-invalid>-->
        <!--<is-xml>false</is-xml>-->
        <!--</jsp-property-group>-->

    <!--</jsp-config>-->
    <!--解决返回html文件 方法二 -->
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>
</web-app>

springcontext.xml

<?xml version="1.0" encoding="UTF-8" ?>

<context:component-scan base-package="com.service,com.dao"/>

<context:property-placeholder location="classpath:config/jdbc.properties"/>
<bean  id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.drvierClass}"/>
    <property name="url" value="${jdbc.url}"></property>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>
<!-- 配置myBatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <!-- mybatis mapper文件的扫描路径-->
    <property name="mapperLocations" value="classpath:mapper/*Mapper.xml"></property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<!--配置dao层的扫描路径  -->
<property name="basePackage" value="com.dao"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
    </beans>

spring-mvc.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:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
				http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
				http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
				http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<!-- 扫描注解-->
    <context:component-scan base-package="com.controller"/>
    <!-- 扫描RequestMapping-->
    <mvc:annotation-driven>
        <!-- 返回到页面时 json转化问题-->
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"></bean>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <!--用于解决IE兼容性问题 解决IE可能会下载JSON文件 -->
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
    <!--配置视图解析器 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/html"></property>
        <property name="suffix" value=".html"></property>
    </bean>
</beans>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值