一個使用snap的Web應用 (轉)

amyz發表於2007-08-15
一個使用snap的Web應用 (轉)[@more@]

一個使用snap的應用

用WebWork, , 和 Velocity建立一個登入頁面:namespace prefix = o ns = "urn:schemas--com::office" />

概述

WebWork是一個開放Web應用。目的在於簡化Web應用開發。這一欄目介紹了WebWork,並且解釋了使用WebWork和兩個不同的檢視技術,ServerPages(JSP)和Velocity,進行的登入網頁的建立過程。

Web應用和開發是複雜和費時的。但是,你能使用一個框架處理普通的Web應用程式開發任務,從而簡化該過程。幾種Web應用程式框架能做這個而且做得更多。最好的一個是WebWork,一個來自於開放原始碼專案的OpenSymphony組的Web應用程式框架。

WebWork最大的優勢是它的簡單和靈活。WebWork有一個小型的。該API允許開發者立即啟動和執行。WebWork提供許多屬性和靈活的綜合,包括:使用不同的檢視技術,如JavaServerPages(JSP)、Velocity、可擴充套件性單語言轉換說明(T)、和JerReports,的功能。

注意:本文是在WebWork 1.3.0釋出的備選本2的基礎之上的。為了執行提供的例子,你需要建立一個夾在你的應用程式的webapps目錄下,將例子複製到新資料夾中,並且從WebWork分佈上覆制需要的jar檔案到WEB-INF/lib目錄下。從/jw-0307-openprofile.html?#resourcesresources">ResourcesWebWork和本文所需的原始碼。

Action

  在WebWork中最重要的特徵之一就是Action介面。WebWork Action提供在頁面(或者檢視)和企業邏輯之間的對映,從而控制一個Web應用程式的流程。在WebWork中,表單提交到一個Action URI(同一資源標記符);URI對映到一個相應的Action;該Action;這樣前進到了恰當的檢視。

接下來的類,LoginAction,是一個在基於Web的應用程式中處理登入表單的WebWork Action的例子。LoginAction由擴充套件ActionSupport而來,一個提供錯誤處理、檢視對映和許多其它的有用的功能的基類:

import webwork.action.*;

public class LoginAction extends ActionSupport
{
 private String userName;
 private String pass;

 public String getPassword()
 {
 return password;
 }

 public String getUserName()
 {
 return userName;
 }

 public void setPassword(String password)
 {
 this.password = password;
 }

 public void setUserName(String userName)
 {
 this.userName = userName;
 }

 public String doExecute()
 {
 return SUCCESS;
 }

 public void doValidation()
 {
 if (userName == null || userName.length() < 1) addError("UserName", "Please enter username.");
 if (password == null || password.length() < 1) addError("Password", "Please enter password.");
 }
}

LoginAction包含兩個JavaBean屬性,password 和username. WebWork將從這些屬性中取出資料,將你所需要的資料放進到你的檢視中;並可以自動的解釋任何引數,送到Action中設定屬性值。

LoginAction使用兩個來自ActionSupport的:doValidation()和doExecute()。doValidation()函式驗證引數的合法性,並且由doExecute()函式帶動使用者向前到恰當的檢視。doExecute()函式返回一個字串,如果處理成功的話,該字串為常量SUCCESS;有問題的話,該字串為常量INPUT,將使用者送回到INPUT檢視,並且在LoginAction中的doValidation()函式addError,表示出現了一個引數問題並將使用者返回到INPUT檢視。

檢視對映

WebWork ACION用兩種方法對映到檢視:透過一個Action.xml檔案或者一個views.properties檔案。每個ACION應該有一個INPUT檢視和一個SUCCESS檢視。接下來的Action.xml檔案定義了兩個actions:loginJSP和loginVelocity。兩個動作都使用LoginAction類,如果LoginAction返回SUCCESS的話,則帶使用者前進到success.html。如果LoginAction返回INPUT,動作帶使用者前進到相應的INPUT檢視,該動作要麼是login.jsp,要麼是login.vm:



 
 login.jsp
 success.html
 


 
 login.vm
 success.html
 


檢視

  WebWork為許多不同檢視技術提供支援,最通用的使JSP和Velocity。下面的頁是兩個登入頁例子——一個用JSP建立,另一個用Velocity建立。每頁包含一個帶有提交給一個WebWork動作的使用者名稱和密碼欄位的表單。

  login.jsp頁使用WebWork標記庫,建立和迭代了兩個欄位,並且透過收集錯誤重複迭代。webwork:textfield和webwork:password標記建立了文字和密碼域,並且webwork:iterator標記重複迭代任何從LoginAction返回的錯誤。webwork:property標記設定了username、password和errors屬性:





 


 WebWork JSP Example
 

 

 

 
 
 
 


 
 

 
 

 


 

login.vm頁使用Velocity臨時語言增加域並且迭代所有錯誤。在Velocity中,$符號表示一個引用;!符號告訴Velocity如果引用為空的話,什麼都不顯示;#符號表示一個指令。在接下來的例子中,$!userName和$!password訪問LoginAction的userName和password屬性;# foreach指令透過errors屬性迴圈:

 

 


 WebWork Velocity Example
 

 

 

 
 
 
 


 #foreach ($error in $errors)

$error
 #end

 

馬上行動

WebWork是一個簡單的、靈活的、強大的開放原始碼Web應用程式框架。本文介紹了基本的WebWork功能。訪問OpenSympony站點了解更多的指示,並且下載的WebWork版本。當你下載完了以後,進入到Jakarta站點看一看Velocity,一個簡單的、開放原始碼臨時引擎,它可是你的網頁中JSP的備選項。

關於作者

ack" target=_blank>Erik Swenson是/"> Software Solutions的顧問和創始人。他精通使用開放原始碼和進行Java開發,而且,他開發了JasperEdit和OpenReports開放原始碼專案。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-958679/,如需轉載,請註明出處,否則將追究法律責任。

相關文章