发表于: 2017-09-14 22:18:14

1 805


今天完成的事情:优化了代码 整理了任务4的内容 

       首先解决了昨天的异常 然后数据库增加了一个字段 mybatis重新自动生成了一遍

       结果好多地方需要改 还是数据库提前准备一个无用字段吧

      还有这个自动生成有的时候会造成字段不匹配 想大写变成小写 _消失

      返回的页面主要还是靠tiles拼接

 <!-- 主布局 -->
   <definition name="t11new2" template="/WEB-INF/pages/module/main11.jsp" >
       <put-attribute name="cssresources" value="/WEB-INF/pages/module/css.jsp"/>
       <put-attribute name="title" value="Tiles tutorial homepage" />
       <put-attribute name="header" value="/WEB-INF/pages/header11.jsp" />
       <put-attribute name="body" value="/WEB-INF/pages/body11.jsp" />
       <put-attribute name="footer" value="/WEB-INF/pages/footer11.jsp" />
   </definition>
</tiles-definitions>

这里注意每个文件开头引用要齐全 内容要契合

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<html>
<head>
   <tiles:insertAttribute name="cssresources"/>
<title><tiles:getAsString name="title"/></title>
</head>
<body>

<%--<div style= "width:180px;height:20px;margin:0 auto;border:1px solid;">
   <date:date value="${date}"/>
</div>--%>
           <tiles:insertAttribute name="header" />

<tiles:insertAttribute name="body" />


<tiles:insertAttribute name="footer" />

</body>

注意使用的标签 与下面使用布局的区别

<head>
   <tiles:insertDefinition name="t11" />
</head>

这样写的好处是 如果有变化可以直接在main11.jsp里面做修改 而不用更改其他

然后使用了一个自定义标签 在web下面新建一个tld文件注册这个标签

<?xml version="1.0" encoding= "UTF-8"?>
<taglib >
   <!-- 标签库的版本 -->
   <tlib-version>1.0</tlib-version>
   <jsp-version>2.0</jsp-version>
   <!-- 标签库前缀 -->
   <short-name>Example TLD</short-name>
   <!-- 一个标签的声明 -->
   <tag>
       <!-- 标签名称 -->
       <name>date</name>
       <!-- 标签处理器全名 -->
       <tag-class>com.jnshu.tag.DateTag</tag-class>
       <!-- 输出标签体内容 -->
       <body-content>JSP</body-content>
       <!--<attribute>-->
           <!--<description>The name of the property</description>-->
           <!--<name>name</name>-->
           <!--<required>false</required>-->
           <!--<rtexprvalue>true</rtexprvalue>-->
       <!--</attribute>-->
       <attribute>
           <name>value</name>
           <required>true</required>
           <!--<type>com.jnshu.tag.DateTag</type>-->
           <rtexprvalue>true</rtexprvalue>
       </attribute>
   </tag>
</taglib>

在web里面配置

<jsp-config>
   <taglib>
     <taglib-uri>/tags</taglib-uri>
     <taglib-location>./WEB-INF/tld/datetag.tld</taglib-location>
   </taglib>
 </jsp-config>
</web-app>

在jsp页面里 文件头引入

<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>

然后在其中相应的位置插入

<date:date value="${beforeEnd.createat}"/>


运行成功 从数据库取出了相应的时间显示在了页面上

明天计划的事情:开始任务五 
遇到的问题:空指针异常

所谓的指针,就是java中的对象的引用。比如String s;这个s就是指针。 所谓的空指针,就是指针的内容为空,比如上面的s,如果令它指向null,就是空指针。所谓的空指针异常,就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法。比如上面的s假如为null,你还要用s的方法,比如s.equals( String x);那么就会产生空指针异常。

造成原因:@Autowired 后面跟了两个mapper 所以第二个为空

@Autowired
private T10TwoMapper t10TwoMapper;

一个@Autowired只能作用一条语句 一个@Autowired只能作用一条语句 一个@Autowired只能作用一条语句 

重要的事情要写三遍 

cannot resolve property or method (dynamic property? 无法解析属性

字段不匹配 

Mybatis找不到参数错误:There is no getter for property named 'categoryId' in 'class java.lang.Integer'

网上搜说是xml文件中的select映射语句,默认参数类型是map,从map里取属性,所以总是找不到。
 或者是当作对象类型吧。
 因此,用@Param注解或手动指定参数类型。

int selectStudentNumber(@Param("studying") Integer studying);

或者用_parameter代替传入参数

<where>
 <if test="_parameter !=null">
   AND status LIKE #{status}
</if>

还有这个官方网站的基础布局不能随便用

他有一些tr br 用了之后页面莫名其妙的缺了比例不对了 少了一段 

收获:听讲小课堂 复习了一波json 解答了当时的一些疑惑

            一般来说转换成json标签有两种方法 一种是直接使用注解

            另一种是使用标签库 这种实在jsp里面转换成json

         以及正好是用的tiles的一些使用 如在页面里面进行嵌套 使用el表达式

        了解了自定义标签的相关

任务进度:跟师兄讨论了一下任务四的知识点 发现了自己的一些疏漏 需要延期半天

禅道链接:http://task.ptteng.com/zentao/my/


返回列表 返回列表
评论

    分享到