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

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

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

    小菜毛毛技術分享

    與大家共同成長

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks

    看看現存的Java web應用程序框架,無一例外的要求花費大量的時間與精力后才可投入生產。對于大多數開發人員來說想要的東西很簡單:友好,易于學習并且還具有生產力。因此我們開發了JSPX。

    JSPX的主要目標就是打造成為一個“友好的開發者”框架。因為JSPX只基于標準的HTML標簽和簡單的Java POJO

    1.         JSPX易于學習。我們已經做到讓一些只有HTMLJava基礎,而對其它框架一無所知的開發新手在很短的時間內就上手投入生產。

    2.         開箱即用(out of the box)的組件比如說DataTableListTable,ValidatorsCapatcha已經非常強大的,對于一般的需求綽綽有余。

    3.         通過Java API來利用聲明好的代碼來與HTML上那些聲明好的控件進行交互,是JSPX框架的核心。

    聲明代碼是如何使得JSPX與眾不同呢?

    JSPX已經足夠智能——你無需告訴它怎么做,它就已經知道了你的意圖。原因就在于你只需要在HTML的頁面上聲明一些屬性,從而來改變行為結果。比如說吧,有一個DataTable組件,你把它的“AutoBind”屬性設置為“True”后,它會自動的連上數據庫去獲取數據填充表格,不需要任何Java代碼。

    下面的就是DataTable的實例:

    現在我們來個關于HelloWorldQuickStart。用JSPX開發“HelloWorld”非常簡單。只需要三步:

    1.         配置web.xml文件。我們得注冊兩個servlets并且選擇你的URL pattern

    Xml代碼 復制代碼
    1. <servlet>     
    2.     <display-name>JspxHandler</display-name>     
    3.     <servlet-name>JspxHandler</servlet-name>     
    4.     <servlet-class>eg.java.net.web.jspx.engine.RequestHandler</servlet-class>     
    5. </servlet>     
    6.      
    7. <servlet>     
    8.     <display-name>ResourceHandler</display-name>     
    9.     <servlet-name>ResourceHandler</servlet-name>     
    10.     <servlet-class>eg.java.net.web.jspx.engine.ResourceHandler</servlet-class>     
    11. </servlet>     
    12.      
    13. <servlet-mapping>     
    14.     <servlet-name>JspxHandler</servlet-name>     
    15.     <url-pattern>*.jspx</url-pattern>     
    16. </servlet-mapping>     
    17.      
    18. <servlet-mapping>     
    19.     <servlet-name>ResourceHandler</servlet-name>     
    20.     <url-pattern>/jspxEmbededResources/*</url-pattern>     
    21. </servlet-mapping>    
    <servlet>
    <display-name>JspxHandler</display-name>
    <servlet-name>JspxHandler</servlet-name>
    <servlet-class>eg.java.net.web.jspx.engine.RequestHandler</servlet-class>
    </servlet>
    <servlet>
    <display-name>ResourceHandler</display-name>
    <servlet-name>ResourceHandler</servlet-name>
    <servlet-class>eg.java.net.web.jspx.engine.ResourceHandler</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>JspxHandler</servlet-name>
    <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>ResourceHandler</servlet-name>
    <url-pattern>/jspxEmbededResources/*</url-pattern>
    </servlet-mapping>
    

    2.         創建的HTML文件的擴展名就是你剛才選擇的URL pattern。比如說,現在咱們在WebRoot文件夾下創建一個叫FirstPage.jspxHTML文件:

    Html代碼 復制代碼
    1. <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
    2.        xsi:noNamespaceSchemaLocation="http://jspx-bay.sourceforge.net/jspx.xsd"  
    3.        controller="FirstPage" >  
    4.     <html>  
    5.         <head>  
    6.             <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />  
    7.             <title>jspx demo</title>  
    8.         </head>  
    9.         <body>  
    10.             <form method="post" enctype="multipart/form-data" >  
    11.                 <label id="resultLabel"></label>  
    12.             </form>  
    13.         </body>  
    14.     </html>  
    15. </page>  
    <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://jspx-bay.sourceforge.net/jspx.xsd"
    controller="FirstPage" >
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>jspx demo</title>
    </head>
    <body>
    <form method="post" enctype="multipart/form-data" >
    <label id="resultLabel"></label>
    </form>
    </body>
    </html>
    </page>
    

    <!--[if !supportLists]-->
    3.    創建一個Java類,該類必須與定義在HTML頁面上的page標簽“jspx.demo.web.controller.FirstPage”一致。(注:上面頁面配置的“FirstPage”可能有誤,應該是jspx.demo.web.controller.FirstPage)

    Java代碼 復制代碼
    1. public class FirstPage extends Page {   
    2.   
    3.     protected void pageLoaded() {   
    4.         resultLabel.setValue("Hello Web in JSPX");   
    5.   
    6.     }   
    7.   
    8.     public Label resultLabel = new Label();   
    9.   
    10.     public Label getResultLabel() {   
    11.         return resultLabel;   
    12.     }   
    13.   
    14.     public void setResultLabel(Label result) {   
    15.         this.resultLabel = result;   
    16.     }   
    17.   
    18. }  
    public class FirstPage extends Page {
    protected void pageLoaded() {
    resultLabel.setValue("Hello Web in JSPX");
    }
    public Label resultLabel = new Label();
    public Label getResultLabel() {
    return resultLabel;
    }
    public void setResultLabel(Label result) {
    this.resultLabel = result;
    }
    }
    

    現在你可以啟動servlet容器,訪問http://localhost/jspx-demo/pages/FirstPage.jspx.看看結果。(注:真實的URL與你實際配置有關。而且目前版本,所有的頁面貌似只能放在“pages”下)

    FAQ

    JSPX中的HTML文件與普通HTML文件有什么區別?

    看到上面的實例,除了根元素<page>外,我們可以看到頁面用的其實還是標準的HTML標簽。這也是JSPX最重要的特性之一:將一個已經設計好的普通HTML頁面包裝成JSPX頁面,而且僅僅使用<page>標簽即可。雖然JSPX是構建于標準HTML標簽的,但是當遇到一些稍微復雜點的業務(比如說查找數據庫的記錄集),我們也可以使用一些非標準的JSPX標簽來解決(上文提到的DataTableListTableValidatorsCapatcha等等都是)。

     

    POJO中到底定義的是什么?他們是如何綁定上(hook )HTML文件的?

    所謂的Controller (控制器)其實就是一個簡單的POJO類,它表示了在HTML頁面那。在上面的頁面中,你可以在<page>標簽中,看到“Controller”屬性。它與你在后臺定義的那個Controller類的完全限定名是完全一致的。而在這個Controller類中,你又可以定義其它web控件,然后在相應的HTML頁面中添加相應的標簽,并且令其idController中定義的組件變量名一致即可。除此以外,通過使用JspxBean控件,還有更高級的綁定技術,很像JSFbacking beans哦。

    配置文件如何配置,像struts-config.xml嗎?

    配置方法也是JSPX最重要的優點之一。我們從一開始就想把煩人的配置文件給干掉。不像JSFStruts,除了標準的web.xml外,JSPX并不需要任何配置文件。因此,你可以認為JSPX也是一個“Zero Configurations Framework

    該框架有啥缺點嗎?

    對于某些人來說,使用一個相對較新的框架被為是一種冒險。對于JSPX來說,我們已經考察過其它框架,知道哪些東西應該取舍。對于已經采用了像JSFJSP這些技術開發的項目,JSPX也可以融入其中進行開發。對于已有的JSP頁面,我們支持將其轉成JSPX頁面。

    你們在實際工作中使用了此框架嗎?結果如何?

    JSPX第一次公布以來,已經過去的5個多月了,它已經至少付諸于5個我們的企業項目。有些已經完全遷徙到JSPX上去了。其它的由于已經用的是別的開發技術,JSPX目前用于開發新的需求。所有的項目中,JSPX都表現出了驚人的生產力。對于我們的開發周期,高層管理都非常滿意。實際上,我們已經可以將原本計劃數天干完的活,結果不到一小時就搞定了。

    這個框架將來打算怎么發展?

    JSPX的第一次發布是在2009年的11號,但我們并不會因此而止步不前。我們的計劃是每月都發布一次,除把一些bug給修復掉,還會添加新的特性。我們計劃在下一個版本添加對AJAX的支持。當然,推出基于NetBeans的插件也會為此框架增色不少哦。

    其實最主要的是我們還得依靠用戶的不斷反饋來驅動框架變得更有活力,同時還產生出更多的成功商業案例。

    如何開始使用?

     

    我們的站點是http://jspx-bay.sourceforge.net,里面有很多教你如何開始使用JSPX的內容。當然我們也提供了一個demo來演示框架的一些特性。當然我們非常樂意的支持有關JSPX的任何請求,我們的郵箱是:support.jspx@gmail.com

    posted on 2009-05-21 17:21 小菜毛毛 閱讀(2680) 評論(0)  編輯  收藏 所屬分類: J2EE相關技術與框架
    主站蜘蛛池模板: 少妇性饥渴无码A区免费 | 日韩免费高清视频| 美女被cao网站免费看在线看| 亚洲第一第二第三第四第五第六| 亚洲小视频在线观看| 一本色道久久综合亚洲精品高清| 在线观看免费毛片| 亚洲一区二区三区免费视频| 国产午夜无码片免费| rh男男车车的车车免费网站| 亚洲av中文无码字幕色不卡| 亚洲综合色区中文字幕| 亚洲成人精品久久| 亚洲精品无码Av人在线观看国产 | 美女被吸屁股免费网站| 亚洲熟妇成人精品一区| 91午夜精品亚洲一区二区三区| 久久精品国产亚洲av麻豆| 亚洲日韩精品一区二区三区| 亚洲视频在线精品| 亚洲国产精品国产自在在线| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 亚洲av无码不卡| 久久亚洲一区二区| 亚洲AV无码成人精品区在线观看 | xxxxxx日本处大片免费看| 羞羞视频免费网站日本| 成人午夜免费视频| CAOPORM国产精品视频免费| 一级毛片a女人刺激视频免费| 免费一级做a爰片久久毛片潮| 日本激情猛烈在线看免费观看| 国产精品亚洲综合网站| 美女视频黄.免费网址| 污污视频免费观看网站| 污网站在线免费观看| 国产免费一级高清淫曰本片| 美女网站在线观看视频免费的| 中国一级特黄的片子免费| 久久免费精品一区二区| 67pao强力打造国产免费|