<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 8,  comments - 1,  trackbacks - 0


    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Scanner;
     
    public class JusTest {
      public static void main(String[] main)
      {

      
      System.out.println("test 1 ..........start");

      String str1=null;
      
      String str2="";
     
         String str = str1+str2;
     
     
        System.out.println(str.equals(""));
        System.out.println(str==null);
        System.out.println(str.equals("null"));
     
     
        System.out.println("test 1 ..........end ");
       
     
        System.out.println("結(jié)論: 以上操作將空指針轉(zhuǎn)化為字符串null");

       
       
       
       
     
     
     
     
     
     
     
     
     }
    }

    posted on 2007-11-26 15:21 charlie 閱讀(412) 評論(1)  編輯  收藏


    FeedBack:
    # re: null和字符串的恩怨
    2007-11-28 15:19 | charlie
    //method for pdf

    private void generatePDF(
    HttpSession session, String fileName, DbHandler dh)
    throws SQLException, ClassNotFoundException{

    //得到pdf文件名


    try{
    //設(shè)置響應(yīng)
    HttpServletResponse response = getResponse();
    response.setContentType("application/pdf");
    response.setHeader("Content-Disposition", "attachment; filename=" + fileName);

    //新建pdf文檔 ,添加許可
    Document document = new Document();
    document.addLicense(GeneralConstants.PDF_LICENSE_KEY);

    //調(diào)用方法得到頁面寬度
    int pageWidth = this.getPDFPageWidth(session);
    //調(diào)用方法得到頁面實例
    Page page = this.getPDFPageInstance(pageWidth);


    //設(shè)置相關(guān)作者 標題等信息
    HashMap navBarAccessMap = (HashMap)session.getAttribute(UserCompanyWorker.NAV_ACCESS_BEAN);
    String programName = "L5M Internal" + "\n";
    programName += this.getPDFNavBarTitle(navBarAccessMap, CATEGORY_KEY) + " - ";
    programName += this.getPDFNavBarTitle(navBarAccessMap, PROGRAM_KEY);
    String userName = DataUtil.getUserFullName(dh, getUserBean().getUserId());
    document.setAuthor(userName);
    document.setTitle(programName);


    //新建模板
    Template template = new Template();
    this.setupPDFDocumentTemplate(template, page);
    document.setTemplate(template);

    this.setupPDFHeader(session, page, programName, userName);

    //是否設(shè)置了頁腳 Footer
    boolean hasSetupFooter = false;



    Table table = this.getPDFTable(session, page);
    page.getElements().add(table);
    document.getPages().add(page);
    Table tableOF = table.getOverflowRows();
    while (tableOF != null){
    Page pageOF = this.getPDFPageInstance(pageWidth);
    pageOF.getElements().add(tableOF);
    float offsetY = tableOF.getVisibleHeight() + 65; // last table +
    // table start (used
    // for footer)
    document.getPages().add(pageOF);
    tableOF = tableOF.getOverflowRows();
    if (tableOF == null){
    this.setupPDFFooter(session, pageOF, offsetY);
    hasSetupFooter = true;
    }
    }

    if (!hasSetupFooter){
    float offsetY = table.getVisibleHeight() + 65; // last table + table
    // start
    this.setupPDFFooter(session, page, offsetY);
    }
    document.draw(response.getOutputStream());
    }
    catch (Exception e){
    e.printStackTrace();
    }
    }

    ///ok bar title
    private String getPDFNavBarTitle(HashMap navBarAccessMap, String code){
    String title = "No Title";
    if (navBarAccessMap.containsKey(code)){
    NavigationItemBean itemBean = (NavigationItemBean)navBarAccessMap.get(code);
    if (itemBean.getDisplayName() != null) title = itemBean.getDisplayName();
    }
    return title;
    }


    // ok 返回頁面寬度
    // normal ~50; large ~150
    private int getPDFPageWidth(HttpSession session){
    int pageWidth = 0;
    DataTable dataTable = (DataTable)session.getAttribute("dataTable");
    if (dataTable == null) return 0;

    DataNode[][] headerNodes = dataTable.getHeaderNodes();

    pageWidth += 150;
    pageWidth += 20;
    pageWidth += 50;

    int levelCount = headerNodes.length;
    int lastLevelIndex = levelCount - 1;
    for (int i = 0; i < headerNodes[lastLevelIndex].length; i++){
    pageWidth += 50;
    }

    return pageWidth + 100;
    }

    // ok 返回page
    private Page getPDFPageInstance(int pageWidth){
    Page page = new Page(PageSize.LETTER, PageOrientation.LANDSCAPE);
    if (pageWidth > page.getDimensions().getWidth()){
    page.getDimensions().setWidth(pageWidth);
    }
    return page;
    }
    ///ok 新建模板
    private void setupPDFDocumentTemplate(Template template, Page page)
    throws FileNotFoundException{
    float x, y, w, h;

    String token = "%%CP(1)%% of %%TP(1)%%";
    x = page.getDimensions().body.getWidth() - 100;
    y = page.getDimensions().body.getHeight() - 25;
    w = 100;
    h = 25;
    PageNumberingLabel labelPN = new PageNumberingLabel(
    token, x, y, w, h,
    com.cete.dynamicpdf.Font.getHelvetica(), 12, TextAlign.RIGHT);
    template.getElements().add(labelPN);
    }


    ///ok 設(shè)置pdf 頭
    private void setupPDFHeader(HttpSession session, Page page, String programName, String userName)
    throws FileNotFoundException{

    Label labelProgram = new Label(
    programName, 0, 0, page.getDimensions().body.getWidth() / 2, 100,
    com.cete.dynamicpdf.Font.getHelveticaBold(), 12, TextAlign.LEFT);

    String imgPath = getAppHomeDir() + "/image/";
    Image imageLogo = new Image(
    imgPath + "Inter-ViewButton_01.PNG",
    page.getDimensions().body.getWidth(), 0);
    imageLogo.setAlign(Align.RIGHT);

    Calendar cal = Calendar.getInstance();
    java.util.Date date = cal.getTime();
    SimpleDateFormat sdf = new SimpleDateFormat("M/d/yyyy");

    String strRunningInfo = this.getRunningTimeInfo(session);

    String strUserDate = " " + userName + "\n " + sdf.format(date) + "\t\t\t" + strRunningInfo;
    Label labelUserDate = new Label(
    strUserDate, 0, 28, page.getDimensions().body.getWidth(), 100,
    com.cete.dynamicpdf.Font.getHelvetica(), 10, TextAlign.LEFT);

    page.getElements().add(labelProgram);
    page.getElements().add(imageLogo);
    page.getElements().add(labelUserDate);
    }


    // ok 設(shè)置頁腳
    private void setupPDFFooter(HttpSession session, Page page, float offsetY){

    String strDB = "DB Provider: DB106 Equipment";
    Label labelDB = new Label(
    strDB, 0, offsetY, 400, 100,
    com.cete.dynamicpdf.Font.getHelvetica(), 10, TextAlign.LEFT);


    page.getElements().add(labelDB);

    }

    private Table getPDFTable(HttpSession session, Page page){
    Table table = new Table(
    0, 55, page.getDimensions().body.getWidth(),
    page.getDimensions().body.getHeight() - 80,
    com.cete.dynamicpdf.Font.getHelvetica(), 12);
    table.setBorderWidth(1);
    table.setRepeatColumnHeaderCount(4);

    this.setupPDFTableColumns(session, table);
    this.setupPDFTableHeader(session, table);
    this.setupPDFTableBody(session, table);
    return table;
    }

    private void setupPDFTableColumns(HttpSession session, Table table){
    boolean[] isDisplayingHeader = (boolean[])session.getAttribute("invoiceHeaderColumnControl");
    if (isDisplayingHeader == null) return;

    ColumnList colList = table.getColumns();
    for (int i = 0; i < isDisplayingHeader.length; i++){
    if (isDisplayingHeader[i]){
    if (i == 2) colList.add(80);
    else if (i == 4) colList.add(65);
    else if (i == 14) colList.add(65);
    else if (i == 15) colList.add(65);
    else colList.add(65);
    }
    }
    }

    private void setupPDFTableHeader(HttpSession session, Table table){
    boolean[] isDisplayingHeader = (boolean[])session.getAttribute("invoiceHeaderColumnControl");

    RowList rowList = table.getRows();
    Row row1 = rowList.add(com.cete.dynamicpdf.Font.getHelveticaBold(), PDF_FONT_SIZE);
    CellList cellList1 = row1.getCellList();

    for(int i=0; i<INVOICE_HEADER_COLUMNS.length; i++){
    if (isDisplayingHeader[i]) cellList1.add(INVOICE_HEADER_COLUMNS[i]);
    }

    for (int i = 0; i < cellList1.getCount(); i++){
    Cell cell = cellList1.getCell(i);
    cell.setAlign(CellAlign.CENTER);
    cell.setVAlign(CellVAlign.CENTER);
    }
    }

    private void setupPDFTableBody(HttpSession session, Table table){
    boolean[] isDisplayingHeader = (boolean[])session.getAttribute("invoiceHeaderColumnControl");
    List resultList = (List)session.getAttribute("displayList");
    if (isDisplayingHeader == null) return;
    if (resultList == null) return;

    RowList rowList = table.getRows();
    for (int i = 0; i < resultList.size(); i++){
    DataGroupBean bean = (DataGroupBean)resultList.get(i);

    Row row = rowList.add(com.cete.dynamicpdf.Font.getHelvetica(), PDF_FONT_SIZE);
    CellList cellList = row.getCellList();
    RgbColor rowBackground = null;
    if ((i % 2) == 0) rowBackground = new RgbColor(245, 245, 220);
    else rowBackground = new RgbColor(255, 255, 255);
    row.setBackgroundcolor(rowBackground);

    for (int j = 0; j < bean.getNumFields(); j++){
    if (isDisplayingHeader[j]){
    Object obj = bean.getField(j);
    String strValue = (obj != null) ? (bean.getField(j)).toString() : "";
    Cell cell = cellList.add(strValue);
    cell.setFontSize(PDF_FONT_SIZE);
    }
    }

    for (int k = 0; k < cellList.getCount(); k++){
    Cell cell = cellList.getCell(k);
    cell.setAlign(CellAlign.CENTER);
    cell.setVAlign(CellVAlign.CENTER);
    }
    }
    }

    private String getRunningTimeInfo(HttpSession session){
    Long longStart = (Long)session.getAttribute(CountInfoUtil.RUNNING_START_TIME);
    long valueStart = (longStart != null) ? longStart.longValue() : 0;
    Long longEnd = (Long)session.getAttribute(CountInfoUtil.RUNNING_END_TIME);
    long valueEnd = (longEnd != null) ? longEnd.longValue() : 0;

    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(valueStart);
    SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss a");
    long timeDiff = (valueEnd - valueStart) / 1000;
    long hour = timeDiff / 3600;
    long minute = timeDiff % 3600 / 60;
    long second = timeDiff % 60;

    StringBuffer sb = new StringBuffer();
    sb.append("Running Starts at ").append(formatter2.format(cal.getTime()));
    sb.append(" Duration: ");
    sb.append(hour).append("h:");
    sb.append(minute).append("m:");
    sb.append(second).append("s");
    return sb.toString();
    }

    }// class  回復  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    <2007年11月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    常用鏈接

    留言簿(1)

    隨筆檔案

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 91成人在线免费视频| 无码日韩精品一区二区三区免费| 卡1卡2卡3卡4卡5免费视频| 亚洲人成免费网站| 久久成人国产精品免费软件| 亚洲综合色丁香麻豆| 国产成人精品免费视频大| 91亚洲精品自在在线观看| 久草在视频免费福利| 狠狠色伊人亚洲综合网站色| 国产精品无码素人福利免费| 黄页免费视频播放在线播放| 免费一看一级毛片全播放| 一个人看的www在线免费视频| 国产亚洲成归v人片在线观看 | 国产亚洲欧美在线观看| 少妇亚洲免费精品| 中文字幕不卡免费视频| 亚洲AV无码不卡在线播放| 黄页免费的网站勿入免费直接进入| 2020国产精品亚洲综合网| 免费欧洲美女牲交视频| 在线免费观看h片| 亚洲视频一区二区三区| 日本免费无遮挡吸乳视频电影| 一区二区三区免费精品视频| 久久久久久亚洲av成人无码国产| 97免费人妻无码视频| 免费VA在线观看无码| 久久久久亚洲精品影视| 男男AV纯肉无码免费播放无码| 成人免费观看男女羞羞视频| 亚洲卡一卡2卡三卡4卡无卡三| 久久精品女人天堂AV免费观看| 日韩在线观看免费完整版视频| 亚洲AV日韩AV天堂一区二区三区 | 日本免费网站视频www区| 韩国亚洲伊人久久综合影院| 亚洲av伊人久久综合密臀性色| 免费看a级黄色片| 成人性生交大片免费看中文|