jspx學習筆記(一)

Jspx

【此段代碼摘自百度百科】
 jspx 是一個來自於埃及的java web快速開發框架。  

jspx 的主要目標就是打造成爲一個“對開發者友好的”框架。  

jspx 主要的特點包括:  

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

2. 開箱即用(out of the box)的組件比如說DataTable,ListTable,Validators和Capatcha已經非常強大的,對於一般的需求綽綽有餘。  

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

官方網站:http://jspx-bay.sourceforge.net

源碼和例子下載地址:http://sourceforge.net/projects/jspx-bay/files/jspx/jspx_1.1.0/


以下內容轉自http://www.iteye.com/news/4887-jspx-the-rapid-development-of-java-web-frameworks-from-cairo-egypt

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

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

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

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

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

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

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

下面的就是DataTable的實例:

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

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

Xml代碼
     
<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>


<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代碼 複製代碼
  
<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>

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

Java代碼 複製代碼
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;
    }

}


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的插件也會爲此框架增色不少哦。

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章