由于问题是在框架搭建以及运行运行过程中,这边文章是写在完成之后,当时很多问题都没有截图保存,这里只能详细的描述一下问题所在。后续遇到问道问题会及时补充。
1 SSM框架中RESTful支持
问题描述:在前面的文章中我们提到过 RESTful支持,在最后总结时我们也提到使用RESTful支持时,所有访问的地址由DispatcherServlet进行解析,对静态文件的解析需要配置不让DispatcherServlet进行解析,使用此种方式实现RESTful风格的url。所以,在我们使用RESTful时,应对静态文件进行配置SpringMVC.xml
<mv:resources mapping="/js/**" location="/js/" />
。但这种配置方式存在一定的问题,当我们的静态资源较多时,比如:image,css....等等,这种配置方式就很麻烦,所以我们采用<mvc:default-servlet-handler/>
配置。
<!--静态资源默认servlet配置
(1)加入对静态资源的处理:js,gif,png
(2)允许使用"/"做整体映射
-->
<mvc:default-servlet-handler/>
2 SSM框架中mabatis动态代理
使用自动扫描时,理论是不需要在mybatis核心配置文件中引入sql配置文件的,可事实是不引入会报错。这个问题的引发是因为笔者自己使用的是IDEA编辑器,而在学习过程中所参考的的资料是eclipse编辑器。
- 在eclipse中mapper文件和mapper.xml配置文件是在同一目录文件下,所以上述配置就可以实现mapper的动态代理。
- 在idea中,所有的配置文件都是在resources资源文件下,所以mapper文件和mapper.xml配置文件不在同一目录下,上述配置就无法实现动态代理,故而还是需要在核心配置文件中引入sql配置文件了。
解决:在spring-dao配置文件中,在配置SqlSessionFactory对象时,加入自动扫描mapper.xml的配置文件
<!-- 3.配置SqlSessionFactory对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据源 -->
<property name="dataSource" ref="dataSource" />
<!-- 注入mybatis核心配置文件:sqlMapConfig.xml -->
<property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml" />
<!-- 扫描entity包 使用别名 -->
<property name="typeAliasesPackage" value="edu.eurasia.entity" />
<!-- 扫描sql配置文件:mapper需要的xml文件 -->
<property name="mapperLocations" value="classpath:mapper/*.xml" />
</bean>
3 Web静态资源
问题描述:在我们设置后台主页时,后台主页通常是不能被直接在地址栏输入地址访问到的,而实现这种功能的一种简单方法就是将我们的主页放到WEB-INF文件下,WEB-INF下的页面是不能通过地址栏直接访问得到,必须是后台进行返回才可以访问,从而我们可以实现不登录无法访问后台主页的功能。但是,笔者在操作过程中,将所有的静态资源文件(js,css,images...)都存放在WEN-INF文件下,导致页面样式丢失。
解决:在WEB-INF文件下,只能存放页面,所有的静态资源都必须放到WEB-INF文件外。因为,WEB-INF文件下的所有文件都不能通过地址栏得到,都必须经过后台的返回。