Springmvc + Ibatis 搭建 点餐系统

05-29:

把Ibatis搭建上去后,发现action不起作用,不能进去java代码, 是由于在组合Ibatis时候, 删除了对Action的扫描。

05-30:

调试时候发现不能连上数据库,百度了下ibatis输出sql的做法,发现可以运用上log4j, 查看原来ibatis的demo,就是在src目录下加入一个log4j.properties文件。

# Rules reminder:
# DEBUG < INFO < WARN < ERROR < FATAL

# Global logging configuration
log4j.rootLogger=DEBUG, stdout

# My logging configuration...
log4j.logger.org.mybatis.jpetstore=DEBUG

## Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n

然后调试了下, 发现输出的sql的参数有问题,修改了下, okay!

06-05:

再一次搭框架时候,发现如果把

<!-- enable component scanning (beware that this does not enable mapper scanning!) -->
    <context:component-scan base-package="org.springframework.samples.service" />
    <context:component-scan base-package="org.springframework.samples.controller"></context:component-scan>
 放在

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
 </bean>

之前,会报如下等一系列错误:

" org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.samples.persistence.UserMapper org.springframework.samples.service.loginService.userDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.springframework.samples.persistence.UserMapper] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}"

放到其后,就会报JDBC找不到的错误. 等待晚上解决.

百度了下说是少了JDBC的驱动包, 用ctrl+T查看了Driver类,是存在于baidu的SDK当中。 找到该jar包, 拷贝到lib下, 启动成功!

 

06-06

使用了springmvc 注解

<mvc:resources mapping="/javascript/**" location="/resources/javascript/"/>  
<mvc:resources mapping="/styles/**" location="/resources/css/"/>  
<mvc:resources mapping="/images/**" location="/resources/images/"/>

因为配置servlet时,会拦截静态文件, 所以需要设置静态文件的映射,jsp文件一般都放在web-inf文件夹下。

<servlet-mapping>
        <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

在jsp里需要导入<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

jsp里用这种语法调用css文件。<img src="<c:url value="/images/icon_22.gif" />" />

而css,jpg等文件一般只放在webRoot文件夹里。 css文件中只需要按照路径写就可以background: url('../images/icon_22.gif')

别搞混css和jsp

 

06-11

今天学习把后台的数据在jsp中显示,需要用到ModelAndView, 在里面加入对象,相当于一个map储存键值对。取值时用${obj}, 如果是list类型

<c:forEach var="classItem" items="${classes}">
            <li>
                        <span>${classItem}</span>
            </li>
 </c:forEach>

 

06-16

写了一个新的dishClassService的部分,有关的Mapper类, 配置都写好了,但是启动tomcat时候就会报错

Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Caches collection already contains value for org.springframework.basic.persistence.DishClassMapper

在配置文件里,觉得是不需要参数,所以没写parameterType

<select id="getDishClasses" parameterType="" resultType="DishClass">
select * from dishClasses
</select>

偶然加了参数后就不报错误了。

 

06-18

完成了类别管理的增加和删除。

解决了路径的问题。

@RequestMapping(value="/showClasses", method=RequestMethod.GET)
public ModelAndView classesManageCheck(){。。。}

需要在value里设置值。

解决禁止select缓存的问题,在mapper配置文件里删除<cache />这行, 默认是不支持缓存的。

 

06-21

规范化:需要在requestParam后写上vaue, 对应的是传过来的参数值。 如果没有写这个value, 需要方法的参数和页面的参数对应, 不然不能跑入对应的方法中。

 

@RequestMapping(value="/deleteMateriaClass", method=RequestMethod.GET)
public String deleteClass(@RequestParam(value="dishId") String materiaId)

 

posted @ 2013-05-29 22:57  叶子盛忆  阅读(783)  评论(0编辑  收藏  举报