一個使用snap的Web應用 (轉)
一個使用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:
檢視
WebWork為許多不同檢視技術提供支援,最通用的使JSP和Velocity。下面的頁是兩個登入頁例子——一個用JSP建立,另一個用Velocity建立。每頁包含一個帶有提交給一個WebWork動作的使用者名稱和密碼欄位的表單。
login.jsp頁使用WebWork標記庫,建立和迭代了兩個欄位,並且透過收集錯誤重複迭代。webwork:textfield和webwork:password標記建立了文字和密碼域,並且webwork:iterator標記重複迭代任何從LoginAction返回的錯誤。webwork:property標記設定了username、password和errors屬性:
login.vm頁使用Velocity臨時語言增加域並且迭代所有錯誤。在Velocity中,$符號表示一個引用;!符號告訴Velocity如果引用為空的話,什麼都不顯示;#符號表示一個指令。在接下來的例子中,$!userName和$!password訪問LoginAction的userName和password屬性;# foreach指令透過errors屬性迴圈:
#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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一個行轉列的應用
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 1 部分RustWeb
- 開始使用ASP.NET Core - 建立第一個Web應用ASP.NETWeb
- 一個小時搭建一個全棧 Web 應用框架全棧Web框架
- Snap 使用
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 3 部分 —— 整合RustWeb
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 2a 部分RustWeb
- 開發Web應用程式中Cookie使用的問題 (轉)WebCookie
- 如何構建一個WEB同構應用Web
- 目前在做的一個web應用程式的前端選型Web前端
- 在.NET的Windows桌面應用中使用Amazon的Web Services (轉)WindowsWeb
- 使用JavaServer Pages2.0開發Web應用 (轉)JavaServerWeb
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 2b 部分RustWeb
- 使用AngularJS開發我們下一款Web應用的七個理由AngularJSWeb
- 如何用TypeScript來建立一個簡單的Web應用TypeScriptWeb
- 開發和部署一個簡單的Clojure Web應用Web
- 一個關於 Web 應用國際化的問題Web
- 一個金融應用專案的總結 (轉)
- 用Servlet開發企業級三層Web應用(一) (轉)ServletWeb
- 在一個WEB應用程式中如何實現使用者上下線啊Web
- [譯] 響應式 Web 應用(一)Web
- WEB例項:開發一個聊天室應用Web
- 【菜鳥學Java】5:“徒手”建立一個Web應用JavaWeb
- apache web 中的CGI應用問題(轉)ApacheWeb
- 使用JMeter測試Web應用JMeterWeb
- 在應用程式中將OJB作為一個儲存層使用(一) (轉)
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 4 部分 —— CLI 選項解析RustWeb
- 利用ASP開發Web應用 (轉)Web
- Web應用的元件化開發(一)Web元件化
- 學用Java Web Start 部署應用程式 (轉)JavaWeb
- 用JavaServer Faces開發Web應用(4) (轉)JavaServerWeb
- 用JavaServer Faces開發Web應用(3) (轉)JavaServerWeb
- 一個小時搭建一個全棧 Web 應用框架(下)——美化與功能全棧Web框架
- 使用 Flutter 開發簡單的 Web 應用FlutterWeb
- 使用OWASPTopTen保證Web應用程式的安全Web
- Shell的五個小應用(轉)
- flatpak 和 snap 是 Linux 上的應用軟體打包方式Linux
- Sender 的應用:所有Edit共用一個過濾格式 (轉)