发表于: 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/
评论