愚僧

          贏與輸的差別通常是--不放棄

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            23 Posts :: 0 Stories :: 2 Comments :: 0 Trackbacks

          2013年3月1日 #



          步驟:
          1. 定義tld標簽描述文件
          2. 新建class繼承SimpleTagSupport或者BodyTagSupport
          3. taglib命令聲明
          4. 使用自定義標簽

          1. 定義tld標簽描述文件custom_tag.tld
          <?xml version="1.0" encoding="UTF-8"?>
          <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
              version
          ="2.0">
              <description>JSTL 1.1 core library</description>
              <display-name>JSTL core</display-name>
              <tlib-version>1.1</tlib-version>
              <short-name>ct</short-name>
              <!-- 與 taglib 的 uri 對應 -->
              <uri>http://www.customtag.com/custom_tag</uri>
              <!-- 定義一個標簽 -->
              <tag>
                  <!-- 標簽的名稱 -->
                  <name>date</name>
                  <!-- 標簽類 -->
                  <tag-class>com.customtag.tags.DateTag</tag-class>
                  <!-- 標簽體 -->
                  <body-content>empty</body-content>
                  <attribute>
                      <!-- 屬性名稱 -->
                      <name>format</name>
                      <!-- 是否必選 true:必選 -->
                      <required>false</required>
                      <!-- 是否允許使用表達式(EL), false:不能使用 -->
                      <rtexprvalue>false</rtexprvalue>
                  </attribute>
                  <attribute>
                      <name>value</name>
                      <required>false</required>
                      <rtexprvalue>true</rtexprvalue>
                  </attribute>
              </tag>
          </taglib>
          注:
          可參考jstl-[version].jar中META-INF下的c.tld文件

          2. 新建DateTag繼承SimpleTagSupport或者BodyTagSupport
          package com.customtag.tags;

          import java.io.IOException;
          import java.text.SimpleDateFormat;
          import java.util.Date;

          import javax.servlet.jsp.JspException;
          import javax.servlet.jsp.JspWriter;
          import javax.servlet.jsp.PageContext;
          import javax.servlet.jsp.tagext.SimpleTagSupport;

          public class DateTag extends SimpleTagSupport {
              
              @Override
              public void doTag() throws JspException, IOException {
                  SimpleDateFormat sdf = new SimpleDateFormat(format);
                  PageContext pc = (PageContext) getJspContext();
                  JspWriter out = pc.getOut();
                  try{
                      if(null != this.getValue()){
                          out.print(sdf.format(new Date(this.getValue())));
                      }else{
                          out.print(sdf.format(new Date()));
                      }
                  }catch(IOException e){
                      throw e;
                  }catch(Exception e){
                      out.print("");
                  }
              }
              
              private String format="yyyy-MM-dd HH:mm:ss";
              
              private Long value = null;
              
              public String getFormat() {
                  return format;
              }

              public void setFormat(String format) {
                  this.format = format;
              }

              public Long getValue() {
                  return value;
              }

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

          3. taglib命令聲明
          <%@taglib prefix="ct" uri="http://www.customtag.com/custom_tag"%>

          4. 使用自定義標簽
          <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
          <%
              
          String path = request.getContextPath();
              
          String basePath = request.getScheme() + "://"
                      
          + request.getServerName() + ":" + request.getServerPort()
                      
          + path + "/";
          %>
          <%@taglib prefix="ct" uri="http://www.customtag.com/custom_tag"%>

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
              <head>
                  <base href="<%=basePath%>">

                  <title>My JSP 'index.jsp' starting page</title>
                  <meta http-equiv="pragma" content="no-cache">
                  <meta http-equiv="cache-control" content="no-cache">
                  <meta http-equiv="expires" content="0">
                  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
                  <meta http-equiv="description" content="This is my page">
                  <!--
                  <link rel="stylesheet" type="text/css" href="styles.css">
                  
          -->
              </head>

              <body>
                  自定義標簽測試 : 
                  <br>
                  <ct:date/><br/>
                  <ct:date format="MM/dd/yyyy"/><br/>
                  <ct:date format="yyyy年MM月dd日 HH時mm分ss秒" value="<%=new Date().getTime() %>"/><br/>
              </body>
          </html>

          [運行結果]
          自定義標簽測試:
          2013-03-04 16:18:29
          03/04/2013
          2013年03月04日 16時18分29秒
          posted @ 2013-03-04 16:35 ywm 閱讀(122) | 評論 (0)編輯 收藏


          以下情況被認為 false :
          • boolean類型的FALSE
          • int類型的0
          • 浮點類型的0.0
          • 字符串"" 或者 "0"
          • 空的數組
          • 空的對象null
          其他情況都認為是true






          posted @ 2013-03-01 17:51 ywm 閱讀(133) | 評論 (0)編輯 收藏


          用于執行控制臺命令

          $output = `ls -al`;
          echo "<pre>$output</pre>";

          有對平臺依賴性, 降低了php跨平臺能力
          posted @ 2013-03-01 16:30 ywm 閱讀(99) | 評論 (0)編輯 收藏

          用于忽略掉錯誤信息

          <?php
          //忽略包含文件時產生的錯誤
          @include("inc.php");
          //忽略連接mysql數據庫出錯產生的錯誤信息
          $conn = @mysql_connect("localhost","username","password");
          //忽略打開文件產生的錯誤信息
          $fp  = @fopen("user.xml","w");
          function test(){
          return 10;
          }
          //忽略調用函數失敗產生的錯誤信息
          $number = @test();
          ?>
          posted @ 2013-03-01 16:25 ywm 閱讀(108) | 評論 (0)編輯 收藏


          serialize : 序列表表格內容為字符串, 返回的是一個字符串
          var serializeStr = $("form").serialize();
          result : username=forrest&passwd=1234&gender=0&interest=swimming&interest=running&interest=readBook

          serializeArray : 序列化表格元素 (類似 '.serialize()' 方法) 返回 JSON 數據結構數據
          var fields = $("select, :radio").serializeArray();
          jQuery.each( fields, function(i, field){
            $("#results").append(field.name + "=" +field.value + "; ");
          });
          result : username=forrest; passwd=1234; gender=0; interest=swimming; interest=running; interest=readBook; 
          posted @ 2013-03-01 15:42 ywm 閱讀(643) | 評論 (2)編輯 收藏

          主站蜘蛛池模板: 邵阳县| 大同市| 融水| 江山市| 喀喇沁旗| 类乌齐县| 桂阳县| 岐山县| 平罗县| 阳新县| 武宣县| 措勤县| 盐亭县| 班戈县| 织金县| 昆明市| 老河口市| 汕头市| 繁昌县| 靖州| 杭锦旗| 旺苍县| 芦溪县| 葵青区| 东乡族自治县| 宝山区| 台南市| 德州市| 德惠市| 和静县| 永康市| 普定县| 恭城| 瓦房店市| 开江县| 靖边县| SHOW| 焉耆| 调兵山市| 治县。| 菏泽市|