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

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

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

    websphere的servlet配置無效問題

    C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\app-bi2Node01Cell\applications\appname.ear\deployments\appname\appname.war\WEB-INF\web.xml 該目錄下的web.xml的修改才是有效

    應用程序發布的目錄下的那個web.xml添加的servlet配置是無效的

    posted @ 2008-04-28 18:06 JGAO編程隨筆 閱讀(1493) | 評論 (3)編輯 收藏

    jsp的request.getParameter獲取不到表單參數

    可能原因:

    1: form表單中的控件沒有定義name屬性

    2: form表單中的控件被設置成disabled

    3: form表單的enctype="multipart/form-data"是一種用于上傳文件的表單

    解決方法:

    對于第三種情況我們直接request.getParameter來取參數值是取不到的

    我們可以借用apache的上傳組件來解決

    用到jarcommons-fileupload-1.1.1.jar

    import org.apache.commons.fileupload.FileItem;

    import org.apache.commons.fileupload.FileItemFactory;

    import org.apache.commons.fileupload.FileUploadException;

    import org.apache.commons.fileupload.disk.DiskFileItemFactory;

    import org.apache.commons.fileupload.servlet.ServletFileUpload;

        /**

         *獲取各種類型表單的表單參數

         *@paramrequest HttpServletRequest請求對像

         * @paramparamName 參數名

         *@return

         *@throwsFileUploadException

         */

        publicstatic String getParameterValue(HttpServletRequest request,String paramName) throws FileUploadException{

        boolean isMultipart = ServletFileUpload.isMultipartContent(request);

        if(isMultipart==true){

            FileItemFactory factory = new DiskFileItemFactory();

            ServletFileUpload upload = new ServletFileUpload(factory);

            List fileItemList = upload.parseRequest(request);

            if(fileItemList!=null){

               for(Iterator itr=fileItemList.iterator();itr.hasNext();){

                   FileItem fileItem = (FileItem)itr.next();

                   if(fileItem.getFieldName().equalsIgnoreCase(paramName)){

                       return new String(fileItem.getString().getBytes("ISO8859-1"))//中文轉碼

                   }

               }

            }

        }else{

            return new String(request.getParameter(paramName).getBytes("ISO8859-1"))//中文轉碼

        }

        return"";

        }

    posted @ 2007-12-14 19:07 JGAO編程隨筆 閱讀(14905) | 評論 (6)編輯 收藏

    初學jsf自定義標簽時遇到的問題總結

    1.定義一個標簽要用到兩個java類,這個跟jsp的自定義標簽有點不一樣
      第一個類繼承UIComponentTag, 用于定義標簽的屬性和設置標簽的所有屬性值到控件的map屬性attributes或valueBinding中
      第二個類繼承UIInput或者UIOutput,用于渲染標簽的內容,真正打印標簽內容的地方就在這里
       
    2.這兩個類是怎么聯系的
     我們需要像定義jsf的bean的影射文件一樣,在faces-config.xml或者自己定義的xml文件里面定義第二個類
     如:
     
    <faces-config>
      
    <!--分頁標簽-->
      
    <component>
        
    <component-type>pageTag</component-type>
        
    <component-class>com.jsf.PageComponent</component-class>
      
    </component>
      
      
    </faces-config>
      然后第一個類要實現父類的一個方法 public String getComponentType();從這里返回一個字符串pageTag,這樣就跟第二個類聯系起來了

    3.標簽屬性的定義
      標簽屬性的定義一般都是可轉化為字符串的類型的,除非你還是用
    <%=rowList%>這種jsp賦值的方式
      別以為你定義的一個List類型的屬性可以用jsf的EL表達式可以直接賦值進來,EL表達式傳進來以后屬性接收的就是這一串EL表達式
      所以就是說你的屬性就是要字符串類型的

    4.那么jsf自定義標簽是怎么接收EL表達式綁定的列表的
     先通過父類的isValueReference(屬性值),來判斷該屬性的值是否是一個EL的表達式
     如果是則通過獲取綁定值得方式把真正的屬性的值設置到標簽父類的valueBinding對像中
     否則直接把屬性的值添加到標簽父類的attributes對像中
      if (isValueReference(屬性值)) {
        javax.faces.el.ValueBinding vb = Util.getValueBinding(value.toString());
        component.setValueBinding(name, vb); //component就是標簽對像,name就是標簽的屬性名稱
     } else {
        component.getAttributes().put(name, 屬性值);
     }

     這就是個設置屬性值的過程,可以在第1點說的第一個類里面的protected void setProperties(UIComponent component)方法
    5.現在知道標簽屬性值的作用了嗎
     是的標簽屬性值只不過是起個作用而已,而不是我們真正所要的值
     也就是說我們是不能從這些屬性中直接取值的
     
    6.那么我們怎么取屬性的真正的值呢
     可以先從第4點說的標簽父類的attributes對像中取值
     如果取不到值那就到標簽父類的valueBinding對像中取值
     說白了就是,通過第4步我們屬性的真正的值不是放在attributes就是在valueBinding中
     Object obj = component.getAttributes().get(name); //component就是標簽對像,name就是標簽的屬性名稱
     if (obj == null) {
       ValueBinding vb = component.getValueBinding(name);
       if (vb != null) {
        return vb.getValue(context);
       } else {
        return null;
       }
     }
     這個過程就是取屬性值的過程,在第1點說的第二個類里面進行
     
    7.現在屬性值也可以取到了,那么我們要怎么打印標簽的內容呢
      我們可以在第二個類的encodeBegin或者encodeEnd中進行
      public void encodeBegin(FacesContext context) throws IOException
      public void encodeEnd(FacesContext context) throws IOException
     
      取屬性值的過程也可以在這里進行,取完值后就是把值組裝到標簽內容的相應位置中就完了
      
      基本上就是這幾點

    posted @ 2007-11-21 19:21 JGAO編程隨筆 閱讀(2155) | 評論 (4)編輯 收藏

    ajax4jsf跟outputStream.write沖突?

    我在項目中引入ajax4jsf框架
    web.xml中加入

     <filter>
            
    <display-name>Ajax4jsf Filter</display-name>
            
    <filter-name>ajax4jsf</filter-name>
            
    <filter-class>org.ajax4jsf.Filter</filter-class>
      
    </filter>
      
    <filter-mapping> 
          
    <filter-name>ajax4jsf</filter-name>
          
    <servlet-name>Faces Servlet</servlet-name>
          
    <dispatcher>REQUEST</dispatcher>
          
    <dispatcher>FORWARD</dispatcher>
          
    <dispatcher>INCLUDE</dispatcher>
     
    </filter-mapping>


    結果以前的輸出文件到客戶端的代碼就出問題了

                    InputStream fileInputStream = mgt.downloadToStream(result_pathEl.getTextTrim());
                    mgt.deleteFile(result_pathEl.getTextTrim());
    //刪除臨時的報表文件
                    JSFUtil.setSessionAttribute(sessionId, "true");
                    
    if( fileInputStream == null ){
                      System.out.println(
    "==========get inputstream is null========");
                    }


                    OutputStream o 
    = response.getOutputStream();
                    response.reset();
                    response.setContentType( 
    "APPLICATION/OCTET-STREAM" );
                    response.setHeader( 
    "Content-Disposition""attachment;filename=\"" + "exportExcel.xls""\"" );

                    
    int length;
                    
    byte buf[] = new byte[1024];

                    
    while ( ( length = fileInputStream.read( buf, 01024 ) ) != -1 ) {
                        o.write( buf, 
    0, length );
                    }

                    o.flush();
                    o.close();
                    fileInputStream.close();


    提示錯誤如下:主要是o.write出問題

    java.lang.NullPointerException
            at org.ajax4jsf.framework.ajax.xmlfilter.FilterServletResponseWrapper$By
    teArrayServletOutputStream.write(FilterServletResponseWrapper.java:290)


    把web.xml中的ajax4jsf的filter給去掉后,一切又恢復正常

    有那位仁兄遇到同樣情況的嗎?

    posted @ 2007-11-19 20:16 JGAO編程隨筆 閱讀(452) | 評論 (1)編輯 收藏

    取程序的絕對路徑問題

    在本地tomcat5中這樣沒問題
    request.getRealPath("/")+"report/config/configFile/"+priv_id+".xml"

    但是發布到websphere6后就出問題了
    要改成
    request.getRealPath("/")+"/report/config/configFile/"+priv_id+".xml"

    就是report前要加個"/" 斜杠,加了后tomcat5下也是正確的

    posted @ 2007-11-09 18:25 JGAO編程隨筆 閱讀(253) | 評論 (0)編輯 收藏

    程序從oracle移植到db2遇到的問題

     

    1.jdk環境問題

    jdk環境要改為ibm jdk 5.0, 不然連接不上數據庫, 數據庫連接池的連接失敗,c3p0連接池的連接失敗,目前還是默認的方式采用應用服務器的連接池,像tomcat就采用tomcat配置的連接池

    eclipse 的開發時用的jre如果修改為ibm的以后,有可能會導致編譯不了,這要修改編輯器java類型的編碼為gb2312就可以了,genaral->content type –java file

    2. 程序中編寫sql時的用戶模式問題

    用戶模式要用公共常量,以便修改

    不同用戶模式之間的表的訪問通過授權來解決

    3. db2數據庫的函數問題

    程序中的添加和修改時間的地方的日期函數都要修改成

    Date(“2007-01-01”)就是字符串中間有帶中杠的

    日期轉字符串要把原先的to_char改成char(int(2007-01-01))

    Kpi的消息串在配置中在取權限priv_id的字符串要加上char(int(priv_id)),如果直接char(priv_id)會多出一個點號

    4. oracle樹形結構的查詢移植到db2存在問題

    菜單查詢中,有存在層次level的沒實現,目前我先通過自己寫的函數實現,但存在問題跟沒有層次的實現方式一樣存在問題

    因為通過in的方式,in的存在字段是有限的到時候數據量變多了,sql就會執行失敗,可以考慮臨時表來解決

    5. 序列表seq的長度問題

    所有的序列表的序列長度db2是有限制的,好像不能大于8位,這樣序列的字段都要做修改,而且不能重復,要進一步確認修改

    7. 系統權限移植問題

    地區編碼的字段從數值型改為字符串類型,很辛苦,建議以后程序的bean的屬性都用字符串來定義,避免程序移植的類型修改的問題

    8. erwin數據模型問題

    數據模型中的部分表沒有及時更新,跟開發時用的表有出入,以后數據模型要及時更新

    9. 建表的sql語句問題

           建表的sql

     number(12) 這樣的都要改成decimal(12,0)

     varchar2都要改成varchar

    posted @ 2007-10-27 23:27 JGAO編程隨筆 閱讀(394) | 評論 (0)編輯 收藏

    用ibm的東西

    用ibm的東西前先裝ibm的jdk

    posted @ 2007-10-20 15:33 JGAO編程隨筆 閱讀(175) | 評論 (0)編輯 收藏

    表單提交后獲取不到控件的值

    有時候我們在表單提交后卻獲取不到控件的值
    可能原因:
    1. 控件少了name屬性
    2.控件被設置成disabled

    posted @ 2007-07-06 23:38 JGAO編程隨筆 閱讀(360) | 評論 (0)編輯 收藏

    OutputStream 轉 InputStream

    使用場合: 操作excel或pdf等文件時需要先寫到輸出流, 然后又要用到ftp上傳該excel或pdf文件需要用到輸入流作為參數,這時候我們就可以直接把該文件的輸出流轉為輸入流直接上傳到ftp服務器上

      1.
      ByteArrayOutputStream os 
    = new ByteArrayOutputStream();
      InputStream is 
    = new ByteArrayInputStream(os.toByteArray());

    posted @ 2007-06-18 22:41 JGAO編程隨筆 閱讀(4419) | 評論 (0)編輯 收藏

    設置file控件的按鈕樣式

    網上找的,分享一下
    <html>
    <script>
    function fclick(obj){
    with(obj){
    style.posTop
    =event.y-offsetHeight/2
    style.posLeft
    =event.x-offsetWidth/2
    }

    }

    </script>
    <style>
    input
    {border:1px solid #333333;color:#666666;background:#eeeeee;font:normal 12px Tahoma;height:18px}
    </style>
    <br>
    <br>
    <br>
    <table>
    <tr>
    <td>
    <form method="post" action="" enctype="multipart/form-data">
    <input id="f_file">&nbsp;<input type="button" onmouseover="fclick(t_file)" value="選擇上傳文件">
    <br>
    <input name="upload" type="file" style="position:absolute;filter:alpha(opacity=10);width:30px;" id="t_file" onchange="f_file.value=this.value" hidefocus>
    <br><input type="submit" value="提交">
    </form>
    </tr>
    </table>
    </html>

    posted @ 2007-06-14 23:03 JGAO編程隨筆 閱讀(2488) | 評論 (3)編輯 收藏

    僅列出標題
    共4頁: 上一頁 1 2 3 4 下一頁 
    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 美女内射毛片在线看免费人动物| 亚洲综合色区在线观看| 成人午夜免费福利| 亚洲AV无码不卡在线观看下载| 亚洲伊人久久大香线蕉综合图片| 老司机亚洲精品影院无码| 亚洲乱码无人区卡1卡2卡3| 中文字幕不卡高清免费| 91情侣在线精品国产免费| 亚洲精品无码久久久影院相关影片 | 亚洲国产区男人本色| 亚洲精品av无码喷奶水糖心| 一本到卡二卡三卡免费高 | 在线观看亚洲AV每日更新无码| 亚洲AV无码资源在线观看| 你懂的网址免费国产| 日本精品人妻无码免费大全| 亚洲成AV人片一区二区密柚| 亚洲五月综合网色九月色| 国产免费久久精品99久久| 大地资源在线观看免费高清| 亚洲午夜福利在线观看| 一级毛片a女人刺激视频免费| 久久国产色AV免费观看| 久久精品国产亚洲Aⅴ蜜臀色欲| 亚洲黄网站wwwwww| 一级看片免费视频囗交| 国产大片免费观看中文字幕| 亚洲色大成网站www久久九| 99免费视频观看| 久久亚洲AV无码精品色午夜麻豆| 精品人妻系列无码人妻免费视频 | 猫咪免费观看人成网站在线| 国产成人涩涩涩视频在线观看免费| 亚洲黄色免费网址| 手机在线看永久av片免费| 中国黄色免费网站| 亚洲AV永久纯肉无码精品动漫| 99视频精品全部免费观看| 亚洲成a人片在线观看中文动漫 | 国产精品久久免费视频|