发表于: 2017-11-02 23:39:28
1 727
今天完成的事情:
1
自定义tag:
创建一个DateTag的工具类继承TagSupport,重写doStartTag方法
public class DateTag extends TagSupport {private String value;@Overridepublic int doStartTag() throws JspException{String vv = "" + value;//去除value前后的空白,转换成longLong time = Long.valueOf(vv.trim());//获取指定点时间Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(time);//创建一个解析出来的时间模板SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");//得到格式化时间的字符串sString s = dateFormat.format(time);try {//写入jsppageContext.getOut().write(s);} catch (IOException e) {e.printStackTrace();}return super.doStartTag();}public void setValue(String value){this.value = value;}}
然后再WEB-INF创建tld文件夹,创建datetag.tld:
<?xml version="1.0" encoding= "UTF-8"?>
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>date</short-name>
<tag>
<name>date</name>
<tag-class>org.shunly.util.DateTag</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/tld/datetag.tld</taglib-location>
</taglib>
</jsp-config>
最后在jsp中使用:
<%@ taglib prefix="date" uri="/tags" %>
<img src="${l.picture}">
<span>${l.name} ${l.profession}</span>
<p class="text-left">${l.workInfo}</p>
<date:date value="${l.createdAt}"></date:date>
页面效果:
深度思考:
1.什么是jsp?
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。它实现了Html语法中的java扩展(以 <%, %>形式)。将网页设计和网页逻辑分离。
2.jsp有几个内置对象?
一共有9个内置对象:
1、request对象
客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据,作用域为一次请求。
2、response对象
客户端的响应,只在JSP页面内有效。
3、session对象
保存用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。
4、application对象
信息保存直到服务器关闭。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。
5、out 对象
用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。
6、pageContext 对象
取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。
7、config 对象
取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
8、page 对象
代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。
9、exception 对象
显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。
3.熟练使用c标签,el表达式。
c:forEach 遍历
<c:forEach var="l" items="${list}" end="4">
<li class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
<div>
<img src="${l.picture}">
<span>${l.name} ${l.profession}</span>
<p class="text-left">${l.workInfo}</p>
</div>
</li>
</c:forEach>
c:choose和c:when 对应类似于if/else的判断语句
<c:choose>
<c:when test="${j.salary3 != null}">
<div class="rightWarp-class border-bottom">
<div class="rightWarp-year">2-3年</div>
<div class="rightWarp-wages">${j.salary3}</div>
</div>
</c:when>
</c:choose>
${list} 读取后端传过来的list对象
${l.name}的形式得到list的name属性的值。
4.为什么要使用tiles框架?
当多个页面的页面布局中有完全相同的代码时,就是tiles的登场时间了。tile框架通过提炼相同的页面,然后将他们组装起来。这样就达到减少重复性代码的工作了。
明天计划的事情:
上传后跑通,提交任务4
遇到的问题:
这两天被耽搁了。现在调整好了。
收获:
tag的自定义流程。
评论