亚洲成av人片天堂网,亚洲av无码一区二区三区在线播放 ,国产亚洲精品福利在线无卡一 http://m.tkk7.com/ktoo/zh-cnMon, 12 May 2025 06:40:11 GMTMon, 12 May 2025 06:40:11 GMT60Linux c學習之 IDE打造--VIM(三),IDE界面http://m.tkk7.com/ktoo/archive/2011/07/25/354946.htmlKTOOKTOOSun, 24 Jul 2011 16:40:00 GMThttp://m.tkk7.com/ktoo/archive/2011/07/25/354946.htmlhttp://m.tkk7.com/ktoo/comments/354946.htmlhttp://m.tkk7.com/ktoo/archive/2011/07/25/354946.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/354946.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/354946.html我們已經可以通過vim來編寫程序了,但只是局限于只有幾個源文件的情況下,如果想要成為一個強力IDE,還有很多的工作需要支持,我們可以相像一下Eclipse或者VS,作為一個IDE應該具有的功能

1.程序語法及排版支持

2.工程目錄文件管理,工程構建自動化,包括源文件結構和目錄管理

3.代碼結構管理,特別是方便函數及變量查找,函數及變量跟蹤跳轉

4.方便代碼調試

5.自動補全

 

我們已經滿足了上面第一條的要求,現在我們開始研究vim對工程的支持,功能包括工程目錄源文件

  1. taglist   

    借用軍官方的描述

    The "Tag List" plugin is a source code browser for the vim editor
    更通俗一點來講,taglist在另外一個窗口組織和顯示函數,變量列表,可以實現快速定位.此插件需要ctags的支持
    taglist下載 下載安裝,開啟taglist的默認命令是 :TlistToggle, 不太好記,又長,定義一個好記的快捷鍵
    map <silent><F6> <ESC>:TlistToggle<CR>
    按F6就可以顯示和隱藏,效果如下

    )O4UAA_U{{8ZRBNBLA37K]P


  2. nerdtree

    我選擇nerdtree完全是因為在vim的官方上面,它的排名比較前,他和winmanager都是文件管理器 NERD tree下載,同taglist,我們也設置一個快捷鍵

    map <silent><F3> <ESC>:NERDTreeToggle<CR>

    M_%6ROPD`56QN_W}~}5B$TE


  3.   tabbar 下載

    這是從minuBufExplorer衍生出來的一個插件,它可以使用會緩存訪問過的文件,且可以通過alt +數字進行切換

    [_}$F`Q0L9S5A16NR~@P4]S

  4. winmanager 下載

    我們已經有大部分需要的插件了,可是現在需要的是把它們整合起來,首先可以先注釋上面所有的配置,沒有必要對每個插件都單獨使用

    let g:NERDTree_title='NERD Tree'
    let g:winManagerWindowLayout='NERDTree|TagList,Tarbar'
    function! NERDTree_Start()
    exec 'NERDTree'
    endfunction

    function! NERDTree_IsValid()
    return 1
    endfunction
    nmap <F4> :WMToggle<cr>:q<cr>
    namp <C-F4>:WMToggle<cr>

    注意的是winmanager會依賴bufexplorer.vim插件,使用前需要先安裝,整體效果如下, 可以看到Tarbar,taglist,NERDTree都已經整合

    9L86}1{S_V}UNKQDCMV~A$K

  5. project(待續)

  6. 相關引用和借鑒

    Vim插件推薦

    vi/vim使用進階

    Vimer的程序世界手把手教你把Vim改裝成一個IDE編程環境(圖文)

    vim.org打造自己的vim界面--用winmanager合并顯示NERDTree和TagList



KTOO 2011-07-25 00:40 發表評論
]]>
Linux c學習之 IDE打造--VIM(二),Hello worldhttp://m.tkk7.com/ktoo/archive/2011/07/24/354915.htmlKTOOKTOOSun, 24 Jul 2011 03:44:00 GMThttp://m.tkk7.com/ktoo/archive/2011/07/24/354915.htmlhttp://m.tkk7.com/ktoo/comments/354915.htmlhttp://m.tkk7.com/ktoo/archive/2011/07/24/354915.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/354915.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/354915.html前面已經打造了一個使用vim來查看和編輯C語句的粗糙IDE,第二步就是使用這個IDE來寫我們的Hello world了, 當然前提是環境中的gcc已經安裝

  1. 編譯 

    vim允許在IDE內部執行編譯命令,并且可以把錯誤信息直接輸出,而這些是通過quickfix插件實現的,首先準備我們的Hello world

    40YQ5KM_RHDB85SW_FVTQ0N,

    vim編譯的時候需要 Makefile文件的支持,我們針對Hello world寫一個最簡單的Makefile

    0CI_V7Z{0@ZFH`9V}FS68)Q

    首先我們充分利用quickfix插件 

    :copen         #打開一個子窗口

    接著就編譯
    :make

    U@HV(6VY3M{$TTBEWHW`6}J

    如果不能通過編譯, quickfix窗口會給出一些錯誤信息

  2. 編譯(2)

    上面的方式有一個問題,我們必需針對每一個我們想要編譯的源文件寫一個Makefile,或者每個Makefile都包含多個類文件,有時候我們可能只想寫一些簡單的測試或者功能,于是下面的命令就有了用武之地

    :set makeprg=gcc\ -Wall\ -ohello\ hello.c 

    重復上面的 copen, make,得到結果

    HRY%YXLN}MT)V369(S~J`LM

  3. 編譯錯誤

    我們編譯的大部分目的是為了檢查程序是否正常,首先我們修改程序,使它一定出問題,如下,明顯i是一個未定義的變量

    {4L6SGB0}H16I]S%FL$M1EY

    quickfix有很多快捷命令,具體可以參考quickfix help ,其中最常用的是下面兩個

    :cn              " 跳到下一個錯誤
    :cp "
    跳到上就表錯誤

  4. 總結, 通過上面的步驟,我們已經可以利用vim寫一些簡單的測試程序, 


KTOO 2011-07-24 11:44 發表評論
]]>
Linux c學習之 IDE打造--VIM(一), 語法http://m.tkk7.com/ktoo/archive/2011/07/24/354908.htmlKTOOKTOOSun, 24 Jul 2011 02:16:00 GMThttp://m.tkk7.com/ktoo/archive/2011/07/24/354908.htmlhttp://m.tkk7.com/ktoo/comments/354908.htmlhttp://m.tkk7.com/ktoo/archive/2011/07/24/354908.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/354908.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/354908.html
摘要:初步學習Vim,只是聽聞它是一個強大無比的編輯器,傳聞"編程不識vim,IDE再熟也枉然",最近剛好想要學習一下GNU c,于是有了此文, 只是作為學習vim和C的筆記,大部他內容來自 vim help.txt和網上.

1.配置文件

相關的連接

  1. 配置文件
  2. 語法高亮
  3. 語法著色
  4. C語法風格設置
vim的配置一般分成二種--合局配置和用戶配置,配置文件的目錄和名稱可以通過 :version命令查看,centos中默認的全局配置文件是"$VIM/vimrc”,默認的用戶配置是"$HOME/.vimrc” vim默認的配置文件是空的, 可以復制$VIM/vim_example.vim模板.
cp vim_example.vim vimrc        # 全局配置
cp vim_example.vim ~/.vimrc # 用戶配置
vim之所以強大一個重要原因是可以方便通過插件擴展功能,而插件的實質不過是一件腳本文件,只要把它們放到正確的位置,vim可以自動識別. 通用插件可以放置在 $VIM/plugin或者放置在 $HOME/.vim/plugin文件夾中,而一些針對專門文件使用的插件最好放置plugin同級目錄的ftplugin目錄中
mkdir ~/.vim           #用戶相關插件和文檔
mkdir ~/.vim/doc
mkdir ~/.vim/plugin
mkdir ~/.vim/colors
不同用戶有不同的習慣,我所有配置文件都會放置在 $HOME/.vimrc中,而我的插件也會放到 $HOME/.vim目錄中

2.語法高亮

作為一個IDE首先要支持的就是語法高亮, 在 .vimrc中增加
syntax enable
syntax on

3.語法配色

vim默認的配色確實很丑,好吧,我是UI控,但同時我也是一個UI盲.不懂自己配色,這個時候就可以使用別人已經做好的配置,首先你可以看一下你的 $HOME/.vim/colors目錄下支持那些配色方案 , 然后添加配置
colorscheme mine
vim配色插件 http://www.vim.org/scripts/script_search_results.php?&script_type=color%20scheme&show_me=20, 這些方案如果一個一個測太花時間, 而另外推薦一個帶預覽圖的http://code.google.com/p/vimcolorschemetest/, 找一個滿意的,下載到 ~/.vim/colors,試試看,是不是順眼多了!

4.C語法風格設置

DE自然少不了對語法風格的支持,添加以下配置
filetype indent on
set tabstop=4 " 制表符寬度
set softtabstop
set shiftwidth=4 " 縮進的空格數
set autoindent " 自動縮進
set nowrap " 不自動換行
set cindent " c語句縮進風格
set nu " 左側顯示行號


KTOO 2011-07-24 10:16 發表評論
]]>
UltraEdit下Mysql語法加亮http://m.tkk7.com/ktoo/archive/2009/06/12/281843.htmlKTOOKTOOFri, 12 Jun 2009 07:00:00 GMThttp://m.tkk7.com/ktoo/archive/2009/06/12/281843.htmlhttp://m.tkk7.com/ktoo/comments/281843.htmlhttp://m.tkk7.com/ktoo/archive/2009/06/12/281843.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/281843.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/281843.html
  • 下載語法配置文件ftp://ultraedit.com/wf/MySQL5.uew
  • 把MySQL5.uew的內容復制到UltraEdit目錄中的wordfile.txt文件結尾 修改/L20"MySQL" ,其中20表示MySQL在著色中的位置, 我的配置修改成了/L12"MySQL"
  • 保存,以后以.sql結尾的文件都會體現語法著色


  • KTOO 2009-06-12 15:00 發表評論
    ]]>
    resin3+apache2.2整合http://m.tkk7.com/ktoo/archive/2008/12/22/247743.htmlKTOOKTOOMon, 22 Dec 2008 05:21:00 GMThttp://m.tkk7.com/ktoo/archive/2008/12/22/247743.htmlhttp://m.tkk7.com/ktoo/comments/247743.htmlhttp://m.tkk7.com/ktoo/archive/2008/12/22/247743.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/247743.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/247743.html  
          <host id="" root-directory="D:/Program Files/Apache2.2/htdocs"> //修改root-directory到apache的htdocs目錄
         <web-app id="/" root-directory=""/>//修改root-directory
        
    2配置apache
        在loadModule中增加 下面的配置文件
    LoadModule caucho_module "G:/resin-3.1.8/win32/apache-2.2/mod_caucho.dll"

    <IfModule mod_caucho.c>
    ResinConfigServer localhost 6800  
    <Location /caucho-status>
    SetHandler caucho-status
    </Location>
    </IfModule>

    AddHandler caucho-request jsp
    <Location /servlet/*>
    SetHandler caucho-request
    </Location>

    ok 啟動服務器,在htdocs下面測試即可



    KTOO 2008-12-22 13:21 發表評論
    ]]>
    c3p0 .Communications link failure due to underlying exceptionhttp://m.tkk7.com/ktoo/archive/2008/12/18/247068.htmlKTOOKTOOThu, 18 Dec 2008 04:20:00 GMThttp://m.tkk7.com/ktoo/archive/2008/12/18/247068.htmlhttp://m.tkk7.com/ktoo/comments/247068.htmlhttp://m.tkk7.com/ktoo/archive/2008/12/18/247068.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/247068.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/247068.html最近一個項目中頻繁的出現Communications link failure due to underlying exception錯誤,
    網上都說是因為超過8小時應用程序不去訪問mysql數據庫,數據庫就斷掉連接.
    因為用的是c3p0,項目人氣不夠.....,所以有些連接的確空閑了8個小時.
      網上有很多種解決方案.
     1. 修改mysql參數,在mysql.ini的mysqld下面添加
                wait_timeout=5
                interactive_timeout=5
        重啟mysql
    2.寫調試程序
            故意使一個連接空閑6秒,立馬報錯
     3.修改c3p0配置,設置maxIdleTime的值,
      只有這個值小于mysql的wait_timeout就行了,
      調試 ok
    4 .還原所有配置,在項目中增加maxIdleTime配置
     

     



    KTOO 2008-12-18 12:20 發表評論
    ]]>
    windows 下ubuntu8.10初學配置http://m.tkk7.com/ktoo/archive/2008/11/30/243496.htmlKTOOKTOOSat, 29 Nov 2008 17:20:00 GMThttp://m.tkk7.com/ktoo/archive/2008/11/30/243496.htmlhttp://m.tkk7.com/ktoo/comments/243496.htmlhttp://m.tkk7.com/ktoo/archive/2008/11/30/243496.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/243496.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/243496.html
  • 從官方下載ubutu8.10桌面版。因為是接觸linux不久,所以采取wubi安裝方式。
    注意事項
    • ubuntu與ghost有沖突,安裝前須要卸載ghost,不然ubuntu進行正式安裝頁面后會出現亂碼
    • 最好采用虛擬光驅進行安裝,
    一路上都可以按照windows下面的應用程序一樣安裝,只要點擊下一步進行選擇就行了,記住用戶名和密碼
  • 安裝好系統后登錄時一直出現用戶名和密碼不正確的提示,后來上網搜索了半天,發現登錄要先設置編碼。在下面的options中設置就行了。
  • 進行系統后發現有半英文半中文的情況。進入系統管理-->語言支持,更新漢語,重啟動后系統已經是純中文的了


  • KTOO 2008-11-30 01:20 發表評論
    ]]>
    Stripes使用Ajaxhttp://m.tkk7.com/ktoo/archive/2008/03/28/189267.htmlKTOOKTOOFri, 28 Mar 2008 06:51:00 GMThttp://m.tkk7.com/ktoo/archive/2008/03/28/189267.htmlhttp://m.tkk7.com/ktoo/comments/189267.htmlhttp://m.tkk7.com/ktoo/archive/2008/03/28/189267.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/189267.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/189267.html閱讀全文

    KTOO 2008-03-28 14:51 發表評論
    ]]>
    在Stripes中下載excel表格http://m.tkk7.com/ktoo/archive/2008/03/12/185715.htmlKTOOKTOOWed, 12 Mar 2008 07:45:00 GMThttp://m.tkk7.com/ktoo/archive/2008/03/12/185715.htmlhttp://m.tkk7.com/ktoo/comments/185715.htmlhttp://m.tkk7.com/ktoo/archive/2008/03/12/185715.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/185715.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/185715.html 

            InputStream is=null;
            
    try{
             is
    =new FileInputStream(new File(filepath));         
             
    return new StreamingResolution("application/vnd.ms-excel",is);
            }

            
    catch(Exception e){
                
    return null;
            }
    其中"application/vnd.ms-excel指明返回的類型"

    KTOO 2008-03-12 15:45 發表評論
    ]]>
    Stripes學習一: 一個小實例http://m.tkk7.com/ktoo/archive/2008/03/10/185051.htmlKTOOKTOOMon, 10 Mar 2008 05:38:00 GMThttp://m.tkk7.com/ktoo/archive/2008/03/10/185051.htmlhttp://m.tkk7.com/ktoo/comments/185051.htmlhttp://m.tkk7.com/ktoo/archive/2008/03/10/185051.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/185051.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/185051.html
    1. 下載stripes.jar包,并把它放進/WEB/lib目錄下
    2. 復制StripesResources.properties到/WEB/classes目錄下
    3.  配置

        使用Stripes首先在web.xml中要做以下配置
       

     1<filter>
     2        <display-name>Stripes Filter</display-name>
     3        <filter-name>StripesFilter</filter-name>
     4        <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class>
     5    </filter>
     6    
     7    <filter-mapping>
     8        <filter-name>StripesFilter</filter-name>
     9        <url-pattern>*.jsp</url-pattern>
    10        <dispatcher>REQUEST</dispatcher>
    11    </filter-mapping>
    12    
    13    <filter-mapping>
    14        <filter-name>StripesFilter</filter-name>
    15        <servlet-name>StripesDispatcher</servlet-name>
    16        <dispatcher>REQUEST</dispatcher>
    17    </filter-mapping>
    18    
    19    <servlet>
    20        <servlet-name>StripesDispatcher</servlet-name>
    21        <servlet-class>net.sourceforge.stripes.controller.DispatcherServlet</servlet-class>
    22        <load-on-startup>1</load-on-startup>
    23    </servlet>
    24    
    25    <servlet-mapping>
    26        <servlet-name>StripesDispatcher</servlet-name>
    27        <url-pattern>*.action</url-pattern>
    28    </servlet-mapping>
    29


       4、寫前臺jsp頁面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="stripes" uri="http://stripes.sourceforge.net/stripes.tld"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
      
    <head><title>My First Stripe</title></head>
      
    <body>   

        
    <stripes:form action="/test.action" focus="">
            
    <table>
                
    <tr>
                    
    <td>名字:</td>
                    
    <td><stripes:text name="name"/></td>
                
    </tr>
                
    <tr>
                    
    <td>密碼:</td>
                    
    <td><stripes:text name="password"/></td>
                
    </tr>
                
    <tr>
                    
    <td colspan="2">
                        
    <stripes:submit name="execute" value="提交"/>                    
                    
    </td>
                
    </tr>
                
    <tr>
                    
    <td>結果:</td>
                    
    <td>${actionBean.result}</td>
                
    </tr>
            
    </table>
        
    </stripes:form>
      
    </body>
    </html>


      5、后臺

     1package com.test.action;
     2
     3import net.sourceforge.stripes.action.ActionBean;
     4import net.sourceforge.stripes.action.ActionBeanContext;
     5import net.sourceforge.stripes.action.DefaultHandler;
     6import net.sourceforge.stripes.action.ForwardResolution;
     7import net.sourceforge.stripes.action.Resolution;
     8
     9public class Test implements ActionBean {
    10  private String name;
    11  private String password;
    12  private String result;
    13  @DefaultHandler
    14  public Resolution execute() {
    15     result="用戶名為:"+name+"  密碼為:"+password; 
    16     return new ForwardResolution("/test1.jsp");
    17  }

    18  public String getResult() {
    19    return result;
    20}

    21  private ActionBeanContext context;
    22  
    23  public void setPassword(String password) {
    24    this.password = password;
    25}

    26  public void setName(String name) {
    27    this.name = name;
    28}

    29  
    30    public ActionBeanContext getContext() {
    31        
    32        return context;
    33    }

    34
    35    public void setContext(ActionBeanContext context) {
    36        this.context=context;
    37
    38    }

    39
    40}

    41


     6、 在Tomcat中訪問http://localhost:8080/Test.action即可



    KTOO 2008-03-10 13:38 發表評論
    ]]>
    js 實現動態文字滾動http://m.tkk7.com/ktoo/archive/2008/02/22/181501.htmlKTOOKTOOFri, 22 Feb 2008 11:55:00 GMThttp://m.tkk7.com/ktoo/archive/2008/02/22/181501.htmlhttp://m.tkk7.com/ktoo/comments/181501.htmlhttp://m.tkk7.com/ktoo/archive/2008/02/22/181501.html#Feedback1http://m.tkk7.com/ktoo/comments/commentRss/181501.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/181501.html 1<style>
     2div { font-size:12px; }
     3</style>
     4<div id="mq" style="width:100%;height:70px;overflow:hidden" onmouseover="iScrollAmount=0"
     5onmouseout="iScrollAmount=1">
     6  輕輕的我走了,正如我輕輕的來;<br/>
     7  我輕輕的招手,作別西天的云彩。<br/>
     8  <br/>
     9  那河畔的金柳,是夕陽中的新娘;<br/>
    10  波光里的艷影,在我心頭蕩漾。<br/>
    11  <br/>
    12  軟泥上的青荇,油油的在水底招搖;<br/>
    13  在康河的柔波里,我甘心作一條水草。<br/>
    14  <br/>
    15  那榆蔭下的一潭,不是清泉是天上的虹;<br/>
    16  揉碎在浮藻間,沉淀彩虹似的夢。<br/>
    17  <br/>
    18  尋夢,撐支長篙,向青草更青處漫溯;<br/>
    19  滿載一船星輝,在星輝斑爛里放歌。<br/>
    20  <br/>
    21  但我不能放歌,悄悄是別離的笙簫;<br/>
    22  夏蟲也為我沉默,沉默是今晚的康橋。<br/>
    23  <br/>
    24  悄悄的我走了,正如我悄悄的來;<br/>
    25  我揮一揮衣袖,不帶走一片云彩。<br/>
    26  <br/>
    27</div>
    28<script>
    29var oMarquee = document.getElementById("mq"); //滾動對象
    30var iLineHeight = 42//單行高度,像素
    31var iLineCount = 7//實際行數
    32var iScrollAmount = 1//每次滾動高度,像素
    33function run() {
    34oMarquee.scrollTop += iScrollAmount;
    35if ( oMarquee.scrollTop == iLineCount * iLineHeight )
    36oMarquee.scrollTop = 0;
    37if ( oMarquee.scrollTop % iLineHeight == 0 ) {
    38window.setTimeout( "run()"2000 );
    39}
     else {
    40window.setTimeout( "run()"50 );
    41}

    42}

    43oMarquee.innerHTML += oMarquee.innerHTML;
    44window.setTimeout( "run()"2000 );
    45</script>       有動態的數據需要滾動,從網上試了N個無效,這個剛好可以滿足需要(從http://www.sosofun.cn/read.php?218下載)

    KTOO 2008-02-22 19:55 發表評論
    ]]>
    Struts2+Hibernate中關閉Session的filter問題http://m.tkk7.com/ktoo/archive/2008/02/17/180226.htmlKTOOKTOOSat, 16 Feb 2008 17:37:00 GMThttp://m.tkk7.com/ktoo/archive/2008/02/17/180226.htmlhttp://m.tkk7.com/ktoo/comments/180226.htmlhttp://m.tkk7.com/ktoo/archive/2008/02/17/180226.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/180226.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/180226.html用Struts2+Hibernate開發Web程序
    發現網站老是一動不動,在DAO中用  Statistics stats = HibernateUtil.getSessionFactory().getStatistics();
    查看了統計結果,發現打開50個Session只有20個關閉了.
    看結構也沒有什么問題,我使用兩個ThreadLocal 存放Session 和Transaction,再用一個Filter去關閉,各個配置表面上也是沒有問題,可是做測試的時候才發現關閉Session的Filter根本就是沒有運行,或是有時運行,有時不運行,
    仔細想了想,調整了一下sessionclosefilter和Struts2的filter的順序如下,終于可以關閉了

     <filter>
            <filter-name>HibernateSessionCloseFiler</filter-name>
            <filter-class>com.hitecin.struts2.filter.HibernateSessionClose</filter-class>
        </filter>
        <filter>
            <filter-name>struts-cleanup</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
        </filter>
          <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
        </filter>

          <filter-mapping>
            <filter-name>HibernateSessionCloseFiler</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
         <filter-mapping>
             <filter-name>struts-cleanup</filter-name>
             <url-pattern>/*</url-pattern>
         </filter-mapping>

        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>



    KTOO 2008-02-17 01:37 發表評論
    ]]>
    Struts2中出錯http://m.tkk7.com/ktoo/archive/2008/02/03/179175.htmlKTOOKTOOSun, 03 Feb 2008 07:18:00 GMThttp://m.tkk7.com/ktoo/archive/2008/02/03/179175.htmlhttp://m.tkk7.com/ktoo/comments/179175.htmlhttp://m.tkk7.com/ktoo/archive/2008/02/03/179175.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/179175.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/179175.html java.lang.IllegalArgumentException
     at sun.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:585)
     at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:517)
     at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:812)
     at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:964)
     at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:75)
     at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:131)
     at com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.setProperty(OgnlValueStack.java:68)
     at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1656)
     at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
     at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
     at ognl.SimpleNode.setValue(SimpleNode.java:246)
     at ognl.Ognl.setValue(Ognl.java:476)
     at com.opensymphony.xwork2.util.OgnlUtil.setValue(OgnlUtil.java:186)
     at com.opensymphony.xwork2.util.OgnlUtil.internalSetProperty(OgnlUtil.java:360)
     at com.opensymphony.xwork2.util.OgnlUtil.setProperty(OgnlUtil.java:135)
     at com.opensymphony.xwork2.util.OgnlUtil.setProperty(OgnlUtil.java:116)
     at org.apache.struts2.components.Bean.addParameter(Bean.java:147)
     at org.apache.struts2.components.Param.end(Param.java:114)
     at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:43)
     at _jsp._product._productcatagorysecondlist__jsp._jspService(_productcatagorysecondlist__jsp.java:105)
     at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
     at com.caucho.jsp.Page.pageservice(Page.java:570)
     at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:179)
     at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115)
     at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
     at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:277)
     at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:106)
     at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
     at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
     at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
     at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:213)
     at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
     at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
     at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at com.opensymphony.xwork2.interceptor.ParametersInterceptor.intercept(ParametersInterceptor.java:161)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at com.opensymphony.xwork2.interceptor.PrepareInterceptor.intercept(PrepareInterceptor.java:115)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
     at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
     at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507)
     at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
     at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
     at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
     at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
     at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
     at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
     at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:420)
     at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)
     at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
     at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
     at java.lang.Thread.run(Thread.java:595)



    這個錯誤有時出現,有時沒有,又仔細看了一下源碼,發現'firmCode'這個屬性的類型是int,把它改為Integer...
    應該沒問題了,這是Struts2中類型轉換的問題

    KTOO 2008-02-03 15:18 發表評論
    ]]>
    Struts2在Resin3.0X中運行的配置http://m.tkk7.com/ktoo/archive/2007/12/17/168239.htmlKTOOKTOOMon, 17 Dec 2007 07:30:00 GMThttp://m.tkk7.com/ktoo/archive/2007/12/17/168239.htmlhttp://m.tkk7.com/ktoo/comments/168239.htmlhttp://m.tkk7.com/ktoo/archive/2007/12/17/168239.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/168239.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/168239.html 從網上搜了一下,解決方法如下:
    因Resin的mod_caucho插件一般情況下僅對Servlet,JSP服務,不會對Struts2中的Filter方式提供網址服務,
    因此可以使用"Special servlet-mapping"。
    在WEB—INF目錄下再新建resin-web.xml,作如下配置
    <web-app xmlns="http://caucho.com/ns/resin">
     <servlet-mapping url-pattern='/struts/*' servlet-name='plugin_match'/>
     <servlet-mapping url-pattern='/other/*' servlet-name='plugin_match'/>
     <servlet-mapping url-pattern='*.action' servlet-name='plugin_match'/>
     <servlet-mapping url-pattern='*.html' servlet-name='plugin_match'/>
     <servlet-mapping url-pattern='*.do' servlet-name='plugin_match'/>
     <servlet-mapping url-pattern='/dwr/*' servlet-name='plugin_match'/>             
    </web-app>
    ,問題解決了

    KTOO 2007-12-17 15:30 發表評論
    ]]>
    css的問題http://m.tkk7.com/ktoo/archive/2007/11/28/163703.htmlKTOOKTOOWed, 28 Nov 2007 07:16:00 GMThttp://m.tkk7.com/ktoo/archive/2007/11/28/163703.htmlhttp://m.tkk7.com/ktoo/comments/163703.htmlhttp://m.tkk7.com/ktoo/archive/2007/11/28/163703.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/163703.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/163703.html 鏈接到兩個同名但不同路徑的css文件時有一個文件不能顯示效果。如
          <link href="/Skins/Default/CSS/product/css.css" rel="stylesheet" type="text/css"/>
          <link href="/Skins/Default/CSS/admin/css.css" rel="stylesheet" type="text/css"/>
    把一個css文件名改一下就可以顯示效果了




    KTOO 2007-11-28 15:16 發表評論
    ]]>
    jsp URL中文亂碼問題http://m.tkk7.com/ktoo/archive/2007/11/21/162145.htmlKTOOKTOOWed, 21 Nov 2007 09:40:00 GMThttp://m.tkk7.com/ktoo/archive/2007/11/21/162145.htmlhttp://m.tkk7.com/ktoo/comments/162145.htmlhttp://m.tkk7.com/ktoo/archive/2007/11/21/162145.html#Feedback1http://m.tkk7.com/ktoo/comments/commentRss/162145.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/162145.html 從網上搜索了一下,得到如下解決方案。
    在后臺
    String str=request.getParameter("para");
    因為URL采用ISO-8859-1編碼,所以得把它轉換成與頁面相同的編碼方式。
    str=new String (str.getBytes("iso-8859-1"),"utf-8");
    如此得到正確的中文字符



    KTOO 2007-11-21 17:40 發表評論
    ]]>
    Hibernate3.2 核心包作用http://m.tkk7.com/ktoo/archive/2007/08/19/137970.htmlKTOOKTOOSun, 19 Aug 2007 11:31:00 GMThttp://m.tkk7.com/ktoo/archive/2007/08/19/137970.htmlhttp://m.tkk7.com/ktoo/comments/137970.htmlhttp://m.tkk7.com/ktoo/archive/2007/08/19/137970.html#Feedback3http://m.tkk7.com/ktoo/comments/commentRss/137970.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/137970.html 包 作用 說明 jta.jar 標準的JTA API 必要 commons-logging.jar 日志功能 必要 commons-collections.jar 集合類 必要 antlr.jar ANother Tool for Language Recognition(antlr) 必要 dom4j.jar XML配置和映射解釋器 必要  Hibernate3.jar 核心庫 必要 asm.jar ASM字節碼庫 如果使用“cglib”則必要 asm-attrs.jar ASM字節碼庫 如果使用“cglib”則必要 ehcache.jar EHCache緩存 如果沒有其它的緩存,則它是必要的 cglib.jar CGLIB 字節碼解釋器 如果使用“cglib”則必要       以下包可選 versioncheck.jar 版本檢查   swarmcache.jar     jboss-cache.jar TreeCache   jgroups.jar     xml-apis.jar JAXP API   c3p0-0.9.1.jar C3PO JDBC鏈接池   connector.jar JCA API   jboss-system.jar   使用TreeCache時必要 jacc-1_0-fr.jar JACC 庫   checkstyle-all.jar     junit.jar     javassist.jar Javassist 字節碼解釋器   ant-lanuncher.jar     jaas.jar JAAS API   jdbc2_0-stdext.jar JDBC擴展API   ant-antlr.jar Ant antlr支持   jboss-jmx.jar     cleanimports.jar cleanimports   xerces.jar SAX parser JDK版本低于1.4時必要 jaxen-1.1-beta-7.jar Jaxen 如果想提高啟動性能則去使用 ant-junit.jar Ant junit support   ant-swing.jar ant swing support   ant.jar     proxool.jar Proxool JDBC連接池   concurrent.jar   使用TreeCache需要 syndiag2.jar    

     

    總結:

    最小必要包為antlr.jar,cglib.jar,asm.jar, asm-attrs.jar,  commons-collections.jar, commons-loggins.jar ,encache.jar, dom4j.jar,log4j.jar,jta.jar



    KTOO 2007-08-19 19:31 發表評論
    ]]>
    struts2出錯http://m.tkk7.com/ktoo/archive/2007/08/13/136510.htmlKTOOKTOOMon, 13 Aug 2007 13:42:00 GMThttp://m.tkk7.com/ktoo/archive/2007/08/13/136510.htmlhttp://m.tkk7.com/ktoo/comments/136510.htmlhttp://m.tkk7.com/ktoo/archive/2007/08/13/136510.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/136510.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/136510.html用Tomat5.5.20struts2+IntelliJ IDEA開發,剛開始一切正常,今天死活要出現下面的出錯消息,
    讓我十分惱火,于是上網搜,查Document,用了N種方法還是無效
    Unable to load bean: type:c
    .......
    Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware
    .....
    后來想起昨天的調試LOG,
    似乎IDEA啟動Tomat的時候還會去加載Tomat中的Web工程,我昨天下午才把struts2的兩個war例子Deploy上去,而且這兩個例子運行正常一想到這.馬上把這兩個例子全刪了.
      沒想到IDEA調試不出錯了!嘿嘿!

     
     看來com.opensymphony.xwork2.ObjectFactory只能加載一次
    不過后面那句Casued by....是什么意思呢?

    忘了一個關鍵的問題,我部署的時候用的是Tomcat的Manager去部署war包的方法,
    昨天直接把show-case文件放到webapp下面,發現沒有出錯


    KTOO 2007-08-13 21:42 發表評論
    ]]>
    FireWorks快捷鍵http://m.tkk7.com/ktoo/archive/2007/08/08/135169.htmlKTOOKTOOWed, 08 Aug 2007 02:15:00 GMThttp://m.tkk7.com/ktoo/archive/2007/08/08/135169.htmlhttp://m.tkk7.com/ktoo/comments/135169.htmlhttp://m.tkk7.com/ktoo/archive/2007/08/08/135169.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/135169.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/135169.html工具部分

      指針、選擇后方對象 【V】,【0】
      部分選定 【A】,【1】

           選取框、橢圓選取框 【M】
      套索、多邊形套索 【L】
      裁剪、導出區域 【C】
      魔術棒 【W】
      線條工具 【N】
      鋼筆工具 【P】
      矩形、圓角矩形、橢圓、多邊形 【U】
      文本工具 【T】
      鉛筆、刷子 【B】
      矢量路徑、重繪路徑 【P】
      縮放、傾斜、扭曲 【Q】
      自由變形、更改區域形狀 【O】
      滴管工具 【I】
      油漆桶、漸變 【G】
      橡皮擦工具 【E】
      模糊、銳化、減淡、加深、涂抹 【R】
      橡皮圖章工具 【S】
      刀子工具 【Y】
      矩形熱點、圓形熱點、多邊形熱點 【J】
      切片、多邊形切片 【K】
      手形工具 【H】
      縮放工具 【Z】
      隱藏/顯示切片 【2】
      設置默認筆觸/填充色 【D】
      交換筆觸/填充色 【X】

           切換屏幕模式 【F】

           新建文件(N) 【Ctrl】+【N】
      打開(O)... 【Ctrl】+【O】
      關閉(C) 【Ctrl】+【W】
      保存(S) 【Ctrl】+【S】
      另存為(A)... 【Ctrl】+【Shift】+【S】
      導入(I)... 【Ctrl】+【R】

           導出(E)... 【Ctrl】+【Shift】+【R】
      導出預覽(R)... 【Ctrl】+【Shift】+【X】
      在瀏覽器中預覽 【F12】
      在輔助瀏覽器中預覽 【Ctrl】+【F12】,【Shift】+【F12】
      打印(P)... 【Ctrl】+【P】
      退出(X) 【Ctrl】+【Q】
      撤消 【Ctrl】+【Z】
      重做 【Ctrl】+Y,【Ctrl】+【Shift】+【Z】
      插入新建按鈕(B)... 【Ctrl】+【Shift】+【F8】
      新建元件(Y)... 【Ctrl】+【F8】
      熱點(H) 【Ctrl】+【Shift】+【U】
      切片(S) 【Alt】+【Shift】+【U】
      查找和替換(F)... 【Ctrl】+【F】
      剪切(T) 【Ctrl】+【X】
      復制(C) 【Ctrl】+【C】
      復制HTML代碼(H)... 【Ctrl】+【Alt】+【C】
      粘貼(P) 【Ctrl】+【V】
      清除 【退格】,【DEL】
      貼入內部(I) 【Ctrl】+【Shift】+【V】
      粘貼屬性(A) 【Ctrl】+【Alt】+【Shift】+【V】
      重復(L) 【Ctrl】+【Alt】+【D】
      克隆(N) 【Ctrl】+【Shift】+【D】
      參數選擇(F)... 【Ctrl】+【U】
      放大(Z) 【Ctrl】+=,【Ctrl】+(小)+,【Ctrl】+【Shift】+【=】
      縮小(O) 【Ctrl】+-,【Ctrl】+(小)【-】
      縮放比率50% 【Ctrl】+5,【Ctrl】+(小)【5】
      100% 【Ctrl】+1,【Ctrl】+(小)【1】
      200% 【Ctrl】+2,【Ctrl】+(小)【2】
      300% 【Ctrl】+3,【Ctrl】+(小)【3】
      400% 【Ctrl】+4,【Ctrl】+(小)【4】
      800% 【Ctrl】+8,【Ctrl】+(小)【8】
      1600% 【Ctrl】+6,【Ctrl】+(小)【6】
      選區符合窗口大小(S) 【Ctrl】+【Alt】+0,【Ctrl】+【Alt】+(小)【0】
      文檔符合窗口大小(F) 【Ctrl】+0,【Ctrl】+(小)【0】
      完整顯示(D) 【Ctrl】+【K】
      隱藏所選(H) 【Ctrl】+【L】
      顯示全部(A) 【Ctrl】+【Shift】+【L】
      標尺(R) 【Ctrl】+【Alt】+【R】
      顯示網格(G) 【Ctrl】+【Alt】+【G】
      對齊網格(S) 【Ctrl】+【Alt】+【Shift】+【G】
      顯示引導線(U) 【Ctrl】+【;】
      鎖定引導線(L) 【Ctrl】+【Alt】+【;】
      對齊引導線(S) 【Ctrl】+【Shift】+【;】
      切片引導線(L) 【Ctrl】+【Alt】+【Shift】+【;】
      隱藏邊緣(E) 【F9】
      隱藏面板(P) 【F4】,【Tab】
      選擇全部(S) 【Ctrl】+【A】
      取消選擇(D) 【Ctrl】+【D】
      整體選擇(E) 【Ctrl】+【→】
      部分選定(U) 【Ctrl】+【←】
      反選(V) 【Ctrl】+【Shift】+【I】
      修剪畫布(T) 【Ctrl】+【Alt】+【T】
      符合畫布(F) 【Ctrl】+【Alt】+【F】
      選擇動畫(A)... 【Alt】+【Shift】+【F8】
      轉換為元件(C)... 【F8】
      補間實例(T)... 【Ctrl】+【Alt】+【Shift】+【T】
      平面化所選(F) 【Ctrl】+【Alt】+【Shift】+【Z】
      向下合并(D) 【Ctrl】+【E】
      任意變形(T) 【Ctrl】+【T】
      數值變形(N)... 【Ctrl】+【Shift】+【T】
      旋轉90°順時針 【Ctrl】+【Shift】+【9】
      旋轉90°逆時針 【Ctrl】+【Shift】+【7】
      移到最前(F) 【Ctrl】+【Shift】+【↑】
      向前移動(B) 【Ctrl】+【↑】
      向后移動(S) 【Ctrl】+【↓】
      移到最后(K) 【Ctrl】+【Shift】+【↓】
      左對齊(L) 【Ctrl】+【Alt】+1,【Ctrl】+【Alt】+(小)【1】
      垂直居中(V) 【Ctrl】+【Alt】+2,【Ctrl】+【Alt】+(小)【2】
      右對齊(R) 【Ctrl】+【Alt】+3,【Ctrl】+【Alt】+(小)【3】
      頂對齊(T) 【Ctrl】+【Alt】+4,【Ctrl】+【Alt】+(小)【4】
      水平居中(H) 【Ctrl】+【Alt】+5,【Ctrl】+【Alt】+(小)【5】
      底對齊(B) 【Ctrl】+【Alt】+6,【Ctrl】+【Alt】+(小)【6】
      均分寬度(W) 【Ctrl】+【Alt】+7,【Ctrl】+【Alt】+(小)【7】
      均分高度(D) 【Ctrl】+【Alt】+9,【Ctrl】+【Alt】+(小)【9】
      合并路徑(J) 【Ctrl】+【J】
      拆分路徑(S) 【Ctrl】+【Shift】+【J】
      組合路徑(G) 【Ctrl】+【G】
      取消組合路徑(U) 【Ctrl】+【Shift】+【G】
      縮小字體(S) 【Ctrl】+【Shift】+【,】
      增大字體(L) 【Ctrl】+【Shift】+【.】
      粗體樣式(B) 【Ctrl】+【B】
      斜體樣式(I) 【Ctrl】+【I】
      左對齊(L) 【Ctrl】+【Alt】+【Shift】+【L】
      水平居中(C) 【Ctrl】+【Alt】+【Shift】+【C】
      右對齊(R) 【Ctrl】+【Alt】+【Shift】+【R】
      兩端對齊(J) 【Ctrl】+【Alt】+【Shift】+【J】
      強制齊行(S) 【Ctrl】+【Alt】+【Shift】+【S】
      附加到路徑(P) 【Ctrl】+【Shift】+【Y】
      轉換為路徑(C) 【Ctrl】+【Shift】+【P】
      檢查拼寫(S)... 【Shift】+【F7】
      重復插件 【Ctrl】+【Alt】+【Shift】+【X】
      新建窗口(N) 【Ctrl】+【Alt】+【N】
      顯示\隱藏”工具”(T) 【Ctrl】+【F2】
      顯示\隱藏”屬性”(P) 【Ctrl】+【F3】
      顯示\隱藏”答案”(A) 【Alt】+【F1】
      顯示\隱藏”優化”(O) 【F6】
      顯示\隱藏”層”(L) 【F2】
      顯示\隱藏”幀”(R) 【Shift】+【F2】
      顯示\隱藏”歷史記錄”(H) 【Shift】+【F10】
      顯示\隱藏”樣式”(S) 【Shift】+【F11】
      顯示\隱藏”庫”(Y) 【F11】
      顯示\隱藏”URL”(U) 【Alt】+【Shift】+【F10】
      顯示\隱藏”顏色混合器”(M) 【Shift】+【F9】
      顯示\隱藏”樣本”(W) 【Ctrl】+【F9】
      顯示\隱藏”信息”(I) 【Alt】+【Shift】+【F12】
      顯示\隱藏”行為”(B) 【Shift】+【F3】
      顯示\隱藏”查找和替換(F) 【Ctrl】+【F】

    克隆并向上大幅推動 【Alt】+【Shift】+【↑】,【Ctrl】+【Alt】+【Shift】+【↑】
      克隆并向上輕推 【Alt】+【↑】,【Ctrl】+【Alt】+【↑】

    克隆并向下大幅推動 【Alt】+【Shift】+【↓】,【Ctrl】+【Alt】+【Shift】+【↓】
      克隆并向下輕推 【Alt】+【↓】,【Ctrl】+【Alt】+【↓】
      克隆并向右大幅推動 【Alt】+【Shift】+【→】,【Ctrl】+【Alt】+【Shift】+【→】
      克隆并向右輕推 【Alt】+【→】,【Ctrl】+【Alt】+【→】
      克隆并向左大幅推動 【Alt】+【Shift】+【←】,【Ctrl】+【Alt】+【Shift】+【←】
      克隆并向左輕推 【Alt】+【←】,【Ctrl】+【Alt】+【←】
      下一幀 【PgDn】,【Ctrl】+【PgDn】
      前一幀 【PgUP】,【Ctrl】+【PgUP】
      向上大幅推動 【Shift】+【↑】
      向上輕推 【↑】
      向下大幅推動 【Shift】+【↓】
      向下輕推 【↓】
      向右大幅推動 【Shift】+【→】
      向右輕推 【→】
      向左大幅推動 【Shift】+【←】
      向左輕推 【←】
           播放動畫 【Ctrl】+【Alt】+【P】
      用所選填充象素 【Alt】+【退格】,【Alt】+【DEL】
      粘貼于內部 【Ctrl】+【Shift】+【V】
      編輯位圖 【Ctrl】+【E】
      退出位圖模式 【Ctrl】+【Shift】+【E】



    KTOO 2007-08-08 10:15 發表評論
    ]]>
    主站蜘蛛池模板: 亚洲色无码专区一区| 亚洲成av人片在线看片| 久久综合图区亚洲综合图区| 91亚洲国产成人久久精品网站| 亚洲中文字幕久久精品无码2021| 国产亚洲一卡2卡3卡4卡新区 | 四虎永久在线精品免费观看视频 | 亚洲成人免费在线| 最近免费中文字幕mv电影| 毛片免费视频在线观看| 亚洲国产一区二区视频网站| 午夜亚洲国产理论秋霞| 亚洲熟妇无码八V在线播放| 四虎影视永久在线精品免费| 免费污视频在线观看| 亚洲精品动漫免费二区| 亚洲区小说区图片区| 337p日本欧洲亚洲大胆色噜噜 | 岛国岛国免费V片在线观看| 精品熟女少妇av免费久久| 日本免费一区二区三区最新vr| 国产亚洲美女精品久久久| 亚洲一级毛片免费观看| 污网站免费在线观看| 在线免费观看亚洲| 免费在线观看黄网站| 777亚洲精品乱码久久久久久 | 国产片免费在线观看| 亚洲Av无码专区国产乱码DVD| 亚洲熟妇无码AV不卡在线播放| 中文日本免费高清| 成熟女人牲交片免费观看视频 | 亚洲春色另类小说| 日韩少妇内射免费播放| 69xx免费观看视频| 久久影视综合亚洲| 国产91在线|亚洲| 免费看黄的成人APP| 国产一区二区三区在线免费观看 | 亚洲综合激情六月婷婷在线观看| 精品一区二区三区免费毛片|