发表于: 2017-11-08 23:15:47

1 715



今天做的事情:



                   完成     2.用Tiles来完成页面的复用配置,用Tag标签来处理时间的转换,可以自行写一个JSP的时间处理Tag,可以根据传入的时间格式把Long变成对应的格式。                            






                     在测试t11页面时,显示100行报错,在Student表里没有这个cycle字段。这个字段是course课程表的字段,sql查询时。left join , 所有数据都查出来了。又检查了表字段。最后发现问题在哪里。


                    



               

        关键在于使用了course这个字段关联student和course,查出来的数据是course的,所有应该改为${web.course.cycle}。表结构为一对一。


   

                 放一个完整得项目列表。完成将静态页面变成动态内容,并且使用了tiles进行复用。

            


            

                关于使用tiles框架,详细描述一下。

                先导入tiles的依赖,百度一下就有,我的tiles的版本是3.0.5。

                 然后创建一个jsp,作为布局文件。 

                

                  这是tiles的头标签,和C标签差不多,必须加了才能使用prefix参数.


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

                 

                  布局文件用来规范了整个页面的布局,包括页面上的哪一块应该放入哪个内容,例如下面的head,menu,body,fotter,一个jsp页面的基本构建就是这些东西。

                 



                  这是 tiles.xml,使用两个<definition>标签关联了两个jsp,     tiles10.jsp和tiles.11.jsp。   将head,menu等集中在这两个页面。

                 

                     


                   然后再srpingmvc.xml中配置tiles的视图解析器和指定了xml文件的路径地址

           而  p:order="1"表示优先级,数字越小,解析器的优先级越高。



              还有一点,在controller中返回的jsp页面必须是和tiles.xml中的definition的name值相对应,例如第一个definition标签name为10,那么。必须在controller中要返回tiles10.jsp页面的方法的 return "10";  才能进入相对应的 tiles10.jsp。

               在最后放一个链接,讲解tiles非常详细,仔仔细细耐心得看两遍,就可以配置好tiles框架。非常感谢作者分享。

               https://www.cnblogs.com/handsome1013/p/6140720.html


            

               关于tag标签,数据库里存储的是bigint型的时间,想要输出到jsp,使用这个自定义tag标签比较方便,有一个,fmt:formatDate可以转化,但是只能将String类型的转成date型。


              

public class TagTest extends TagSupport {

private static final long serialVersionUID = 6464168398214506236L;

private String value;

@Override
   public int doStartTag() throws JspException {
String vv = ""+value ;
long time = Long.valueOf(vv);
Calendar c = Calendar. getInstance();
c.setTimeInMillis(time);
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" );
String s = dateformat.format(c.getTime());
try {
pageContext.getOut().write(s);
} catch (IOException e) {
e.printStackTrace();
}
return super .doStartTag();
}

public void setValue(String value) {
this.value = value;
}

           

           datetag.tld文件


           

<?xml version="1.0" encoding= "UTF-8"?>
<taglib>
<tlib-version >1.0</ tlib-version>
<jsp-version >1.2</ jsp-version>

<tag >
<name> date</name >
<tag-class> com.jnshu.tag.TagTest</tag-class >
<body-content> JSP</body-content >
<attribute>
<name> value</name >
<required> true</required >
<rtexprvalue> true</rtexprvalue >
</attribute>
</tag >
</taglib>



            在web.xml中加入

            

<jsp-config >
<taglib >
<taglib-uri> /tags</taglib-uri >
<taglib-location> /WEB-INF/tag/datatag.tld</taglib-location >
</taglib >
</jsp-config >



           最后在页面中引用

         

<%@ taglib uri="/tags" prefix="date"%>
< date:date value ="${trigger.startTime} "/>



                    因为设计的表没有用到时间格式,所以这个留以后测试使用了。





遇到的问题:


                   没有很多,都解决了




收获:


                 明天可以结束任务4,注意查收。





返回列表 返回列表
评论

    分享到