当前位置: 首页 > news >正文

百度网站托管网站怎么显示备案号

百度网站托管,网站怎么显示备案号,做网站用百度百科的资料会侵权吗,茶叶企业建设网站带body的自定义标签,尝试写一个标签,这个标签可以迭代显示标签主体里面的内容,迭代的次数由标签的属性指定. 首先,要说明的是,其实标签也是一个java类,它是运行一个或两个接口的javabean,然后再配合标签描述…
带body的自定义标签,尝试写一个标签,这个标签可以迭代显示标签主体里面的内容,迭代的次数由标签的属性指定.
     首先,要说明的是,其实标签也是一个java类,它是运行一个或两个接口的javabean,然后再配合标签描述文件(以.tld为扩展名),两者结合就可以作出自己的自定义标签库了.呵呵,是不是觉得有点眉目了?
     那么下面我们开始写一个自己的java标签类,作为有body的标签,这个类必须实现javax.servlet.jsp.tagext.BodyTag接口.

下面我们看一下BodyTag这个接口中定义了那些方法来支持tag:

public void doInitBody();
public void setBodyContent(javax.servlet.jsp.tagext.BodyContent);
public int doAfterBody();
public void release();
public javax.servlet.jsp.tagext.Tag getParent();
public void setParent(javax.servlet.jsp.tagext.Tag);
public int doEndTag();
public int doStartTag();
public void setPageContext(javax.servlet.jsp.PageContext);
 说了这么多方法,是不是有点头晕了?呵呵,那么究竟BodyTag的处理过程是怎么样的呢?下面我们就来说一下它的处理流程:
1.当容器创建一个新的标签实例后,通过setPageContext来设置标签的页面上下文.
2.使用setParent方法设置这个标签的上一级标签,如果没有上一级嵌套,设置为null.
3.设置标签的属性,这个属性在标签库描述文件中定义,如果没有定义属性,就不调用此类方法.
4.调用doStartTag方法,这个方法可以返回EVAL_BODY_INCLUDE和SKIP_BODY,当返回EVAL_BODY_INCLUDE时,就计算标签的body,如果返回SKIP_BODY,就不再计算标签的body.
5.调用setBodyContent设置当前的BodyContent.
6.调用doInitBody,如果计算BodyContent时需要进行一些初始化,就在这个方法中进行.
7.每次计算完Body后调用doAfterBody,如果返回EVAL_BODY_TAG,表示继续计算一次Body,直到返回SKIP_BODY才继续往下执行.
8.调用doEndTag方法,这个方法可以返回EVAL_PAGE或者SKIP_PAGE,当返回EVAL_PAGE时,容器将在标签结束时继续计算JSP页面其他的部分;如果返回SKIP_PAGE,容器将在标签结束时停止计算JSP页面其他的部分.
9.调用release()方法释放标签程序占用的任何资源。
知道了标签处理的流程了,那么下面我们就开始写一个自己的java类了
我的标签类的源码:
package cn.com.wavenet.hydro.module.tag;import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;import org.apache.struts.util.RequestUtils;
import org.apache.struts.util.ResponseUtils;public class MydemoTag extends BodyTagSupport{private int counts;public MydemoTag() {super();}public void setCounts(int counts){this.counts = counts;}public int doStartTag() throws JspTagException{System.out.println("doStartTag...");if (counts > 0){return EVAL_BODY_TAG;//显示标签间的文字}else{return SKIP_BODY;//不显示标签间的文字}}public void setBodyContent(BodyContent bodyContent){System.out.println("setBodyContent...");this.bodyContent = bodyContent;}public void doInitBody() throws JspTagException{System.out.println("doInitBody....");}public int doAfterBody() throws JspTagException{System.out.println("do After body..." + counts);if (counts > 1){counts--;return EVAL_BODY_TAG;}else{return SKIP_BODY;}}public int doEndTag() throws JspTagException{System.out.println("do end Tag...");try{if (bodyContent != null){bodyContent.writeOut(bodyContent.getEnclosingWriter());}}catch (java.io.IOException e) { throw new JspTagException("IO Error: " + e.getMessage()); } return SKIP_PAGE; //SKIP_PAGE  EVAL_PAGE} }
dtl文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>Application Tag Library</shortname>
<uri>http://jakarta.apache.org/taglibs/struts-example-1.0</uri>
<info>tag loop</info>
<tag>
<name>loop</name>
<tagclass>cn.com.wavenet.hydro.module.tag.MydemoTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>counts</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
 我们对这个文件进行一个小小的说明:
最重要的是上面的黑体字部分,其他的部分我们可以拷贝粘贴就可以了。
tag中的name属性:定义了我们的tag名称,在后面会用到。
tag中的tagclass属性:指定了我们这个tag的实现类。
tage中的bodycontent属性:指定我们的页面内容是什么性质的。(注意:在jsp开发中这里必须写JSP)
tage中的attribute属性:定义了我们的这个tag可能有的属性。
attribute中的name属性:指定了属性的名称。它和我们类中定义的“int counts;”必须一样,并且在类中还必须包含一个setCounts(int counts)方法,否则这个属性就不能设置。
attribute中的required属性:表示这个属性是否是必须的。
attribute中的rtexprvalue属性:表示这个属性是否可以用JSP的程序段的结果输出。
现在我们的tag就写完了,下面就是我们怎么在页面中用了。
首先,我们要在web.xml中声明这个tag
我的web.xml源码:
<span style="white-space:pre">	</span><taglib> <taglib-uri>demotag</taglib-uri> <taglib-location>/WEB-INF/tld/struts-mydemo.tld</taglib-location> </taglib> 
jsp页面

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%><%@ taglib uri="demotag" prefix="demo" %> <html>
<%@include file="/hydro/jsp/plugin/util.jsp" %><%@ taglib prefix="logic" uri="/WEB-INF/struts-logic.tld"%><%@ taglib prefix="bean" uri="/WEB-INF/struts-bean.tld"%><%@ taglib prefix="html" uri="/WEB-INF/struts-html.tld"%><%@ taglib prefix="extend" uri="/WEB-INF/struts-extend.tld"%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
hello world
<br/>					
<br/> 
<demo:loop counts="4"> 
现在时间是:<%=new java.util.Date().toString()%><br/> 
</demo:loop> 
<br/>
haha<br/>
哈哈哈</body>
</html>

页面会出现显示结果

hello world 
hahaha
现在时间是:Fri Apr 22 16:00:34 CST 2016
现在时间是:Fri Apr 22 16:00:34 CST 2016
现在时间是:Fri Apr 22 16:00:34 CST 2016
现在时间是:Fri Apr 22 16:00:34 CST 2016

----下面说下TagSupport与BodyTagSupport的区别大家也就会明白为什么没显示哈哈哈了

1、 TagSupport与BodyTagSupport的区别
TagSupport与BodyTagSupport的区别主要是标签处理类是否需要与标签体交互,如果不需要交互的就用TagSupport,否则如果需要交互就用BodyTagSupport。
交互就是标签处理类是否要读取标签体的内容和改变标签体返回的内容。
用TagSupport实现的标签,都可以用BodyTagSupport来实现,因为BodyTagSupport继承了TagSupport。
2 、doStartTag(),doEndTag(),doAfterBody(),
doStartTag()方法是遇到标签开始时会呼叫的方法,其合法的返回值是EVAL_BODY_INCLUDE与SKIP_BODY,前者表示将显示标签间的文字,后者表示不显示标签间的文字;
doEndTag()方法是在遇到标签结束时呼叫的方法,其合法的返回值是EVAL_PAGE与 SKIP_PAGE,前者表示处理完标签后继续执行以下的JSP网页,后者是表示不处理接下来的JSP网页
doAfterBody()这个方法是在显示完标签间文字之后呼叫的,其返回值有EVAL_BODY_AGAIN与SKIP_BODY,前者会再显示一次标签间的文字,后者则继续执行标签处理的下一步。
EVAL_BODY_INCLUDE:把Body读入存在的输出流中,doStartTag()函数可用
EVAL_PAGE:继续处理页面,doEndTag()函数可用
SKIP_BODY:忽略对Body的处理,doStartTag()和doAfterBody()函数可用
SKIP_PAGE:忽略对余下页面的处理,doEndTag()函数可用
EVAL_BODY_TAG:已经废止,由EVAL_BODY_BUFFERED取代
EVAL_BODY_BUFFERED:申请缓冲区,由setBodyContent()函数得到的BodyContent对象来处理tag的body,如果类实现了BodyTag,那么doStartTag()可用,否则非法

http://www.yayakq.cn/news/169295/

相关文章:

  • 网站开发合同存在的缺陷网页设计与应用论文
  • wordpress主题在哪搜索排名seo
  • 免费用搭建网站百度小程序开发者工具
  • seo外推上排名seo优化宣传
  • 织梦cms仿网站教程购物网站建设技术难点
  • 个人备案网站投放广告做网站设计用到的软件
  • idc 网站源码营销型网站的目标是
  • 企业网站的发展历史制作公司网页思路怎么写
  • 公司网站建设7个基本流程怎么搭建自己的网站服务器
  • 嵌入式工程师是干嘛的宿州百度seo排名软件
  • 网站浮动窗口怎么做进入公众号主页
  • 软件通网站建设海外信息流推广怎么做
  • 找人做网站江津网站建设
  • 吉林市教做网站北京网站设计方案
  • 网站优化seo是什么个人或主题网站建设 实验体会
  • 做涉黄的视频网站用什么服务器北京互联网公司有哪些
  • 下载男女做爰免费网站免费咨询身高问题
  • 网站域名 设置淮阳网站建设
  • 网站建设的难点在哪里室内设计自学软件
  • 北京网站设计制作费用2023年第三波新冠9月
  • 网站建设的需求是什么意思外贸开发网站建设
  • 高端网站设计多少钱成都网站设计哪家好
  • 建网站空间都有什么平台wp标题 wordpress
  • visual studio 2010 网站开发教程开封府景点网站建设的目的
  • 网站建设资料总结东莞seo网站优化运营
  • 做网站生意多吗杭州网页设计公司
  • 咸阳网站制作公司西安给公司做网站
  • 装饰网站卧室做炕百度wordpress 分类文章列表
  • 网站的网络设计公司昆明网站建设有限公司
  • 哪个网站做舞蹈培训推广效果好移动网站 图片优化