发表于: 2017-11-15 13:11:53

2 699


今天完成的事


【结局了昨天的bug】

这个报错提示我com.xiuzhen.dao.TaskDao没有注入进去,但是我在service层

我就一直以为是文件注入的问题。

DI依赖注入我记得是必须要有实现类。但是这个是个借口,就一直围绕着依赖注入失败来查找原因。

经师兄指点少写了一个配置文件。

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
              <!--    给出要扫描的包的地址-->
     <property name="basePackage" value="com.xiuzhen.dao"/>
     <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
 </bean>

这个bean标签是做什么用的呢。(还是当时任务一没有吃透挖下的坑。

这是一个spring的动态代理。

其实和我想的也差不多。。。感觉。

看一下这个东西的源码。

这里面有一个。

很熟悉。。。因为这是MapperFactoryBean的功能。

TaskDao是我们的一个接口,直接通过spring的注入这个bean。然后就可以直接使用了,spring内部会创建一个这个接口的动态代理。


然后再来测试就可以跑通了。

关于在学和工作。

只要给在学做个状态1,工作做个状态0就好了。

读取到所有状态为1的学院采用sql语句。


至此把所有需要变为动态的搞定啦。

贴一下完整的controller层。

@Controller
public class TaskController{

private Logger logger=Logger.getLogger(TaskController.class);

   @Resource
   private FeatureService featureService;
   @Resource
   private ProfessionService professionService;
   @Resource
   private StudentService studentService;

   private Integer study;
   private Integer work;

   //遍历所有Feature
   @RequestMapping(value = "/index",method = RequestMethod.GET)
public String ListFeature(Model model){
//修真院特色
       List<Feature> features=featureService.getAll();
       model.addAttribute("features",features);
       logger.info("加载修真院特色。。。");

       //优秀学员
       List<Student> students=studentService.getAll();
       model.addAttribute("students",students);
       logger.info("加载优秀学员。。。");
       study=studentService.getStudy();
       model.addAttribute("study",study);
       work=studentService.getWork();
       model.addAttribute("work",work);

       return "cs10";
   }
@RequestMapping(value = "/profession",method = RequestMethod.GET)
public String ListProfession(Model model){
//职业划分,后端在数据库为1,前端在数据库为2,移动开发在数据库为3
       List<Profession> professions=professionService.getAll();
       List<Profession> professionsFout=professionService.getFroutEnd();
       model.addAttribute("professionsFout",professionsFout);
       List<Profession> professionsBack=professionService.getBackEnd();
       model.addAttribute("professionsBack",professionsBack);
       List<Profession> professionsMobile=professionService.getMobileEnd();
       model.addAttribute("professionsMobile",professionsMobile);


       return "cs11";

   }



【Tiles来完成页面的复用配置】

先来添加依赖。

<dependency><groupId>org.apache.tiles</groupId>  <artifactId>tiles-extras</artifactId>  <version>3.0.5</version></dependency>

Spring mvc 中配置Tiles框架

<!-- Tiles相关配置 -->
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
   <property name="definitions">
       <list>
           <value>/WEB-INF/tiles.xml</value>
       </list>
   </property>
   <property name="preparerFactoryClass" value="org.springframework.web.servlet.view.tiles3.SpringBeanPreparerFactory" />
</bean>
<!-- Tiles视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
   <property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView"/>
</bean>


建一个布局文件。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
       "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
   <definition name="10" template="/jsp/10templet.jsp">
       <put-attribute name="title" value="" />
       <put-attribute name="header" value="/jsp/10head.jsp" />
       <put-attribute name="menu" value="/jsp/10menu.jsp" />
       <put-attribute name="body" value="/jsp/10body.jsp" />
       <put-attribute name="footer" value="/jsp/10foot.jsp" />
   </definition>
   <definition name="11" extends="10" template="11templet">
       <put-attribute name="title" value=""/>
       <put-attribute name="header" value="/jsp/head.jsp" />
       <put-attribute name="menu" value="/jsp/menu.jsp" />
       <put-attribute name="body" value="/jsp/CustomerForm.jsp"/>
   </definition>

</tiles-definitions>

里面的各个页面还没拆分开,明天搞。

收获

学到了新的sql语句。

遇到的问题

我的student里面判断在学状态的字段名称是condition(状态的意思,但在查询的时候会报错)


这个语句看上去没有任何问题对不对。

很郁闷对不对。。。

我发现每次打condition都会给我默认大写。(幸亏用的navicat,这要是CMD怕是哭死)

就是说他把condition默认认定为sql的操作语句,就是保留字。

查了一下解决方法。

搞定。

但是为了避免我mapper映射里面还要注意,我就直接把字段名字改了。。。



都是一些小问题,研究研究都吃掉了。

明天的计划

完成任务四


返回列表 返回列表
评论

    分享到