国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

基于Stripes框架進(jìn)行Java Web開發(fā)

2019-11-18 15:35:00
字體:
供稿:網(wǎng)友

Mark Eagle是美國喬治亞州亞特蘭大市MATRIX Resources有限公司的一位資深軟件工程師,擁有Sun公司的SCP和SCWCD認(rèn)證。Mark本人非常喜歡使用開源軟件進(jìn)行軟件開發(fā),并且多次積極參與過Hibernate,SPRing及Proxool等聞名開源工程。

一、簡介

Stripes是一個開源的,基于Action的java web框架。傳統(tǒng)型Java web開發(fā)強(qiáng)調(diào)通過松耦合的設(shè)計達(dá)到靈活開發(fā)之目的,這導(dǎo)致了產(chǎn)生多種配置文件,額外對象以及其它零碎的資源。顯然,這些問題提升了眾多開發(fā)人員的學(xué)習(xí)曲線,從而降低了開發(fā)效率。基于這些原因,一些Java開發(fā)者求助于另外的非Java開發(fā)框架—例如Ruby on Rails或者Django。而象Stripes這樣的新型Java web開發(fā)框架,從支持流線式開發(fā)框架的成功中獲取了大量現(xiàn)成的經(jīng)驗。本文中,我們將通過一個具體的案例來探討Stripes是如何區(qū)別于其它基于Action的Java web框架(例如Struts),而同時又實現(xiàn)了例如Ruby on Rails框架所具備的簡單性。

下圖1展示了基于Stripes框架開發(fā)的典型應(yīng)用程序中事件及組件間的通常流程。

基于Stripes框架進(jìn)行Java Web開發(fā)圖1:典型的Stripes流程

如你所見,這也正是我們從一個典型的MVC框架下所想得到的東西。在Stripes及其它基于行為的框架之間的一個主要區(qū)別在于,它沒有提供外部配置文件。很快我們將會看到,在配置方面,Stripes借助于注解和約定(convention)等技術(shù)進(jìn)一步簡化了開發(fā)過程。

二、構(gòu)建你的第一個Stripes行為

下面,讓我們通過創(chuàng)建一個“Hello World”示例來理解Stripes框架是如何把諸多內(nèi)容結(jié)合到一起的。其中,HelloWorldAction類負(fù)責(zé)提示用戶輸入自己的姓名,然后把它們顯示于一個單獨的視圖中。首先,我們來編寫控制器Java類。

public class HelloWorldAction implements ActionBean {   

@ValidateNestedProperties({

@Validate(field = "firstName", required = true,

on = {"hello"}),

@Validate(field = "age", required = true, minvalue = 13,

on = {"hello"})

})

private Person person;

private ActionBeanContext context;

@DefaultHandler

public Resolution index() {

return new ForwardResolution("Hello.jsp");

}

public Resolution hello() {

return new ForwardResolution("SayHello.jsp");

}

public void setPerson(String person) {this.person = person;}

public String getPerson() { return person;}

public void setContext(ActionBeanContext c) {this.context = c; }

public ActionBeanContext getContext() {return context; }

}

在此,這個控制器類十分類似于一個實現(xiàn)了一個稱為ActionBean的Stripes特定接口的POJO(普通Java對象)。注重,所有的Stripes行為都需要實現(xiàn)這個接口,以便答應(yīng)StripesDispatcher servlet把一個ActionBeanContext對象注入到當(dāng)前提供服務(wù)的行為中。該ActionBeanContext對象答應(yīng)你存取servlet API對象—例如請求,響應(yīng)和servlet上下文。大多數(shù)情況下,在一個Stripes應(yīng)用程序中沒有必要存取這些低級別的API對象。該ActionBeanContext類還答應(yīng)你取得關(guān)于當(dāng)前行為的狀態(tài)信息,而且還可以從當(dāng)前行為中添加參考消息和錯誤消息。注重,ActionBeanContext域及其存取器(accessor)可以存儲在一個基類中,因為所有的Stripes行為都會要求這樣的實現(xiàn)。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 麟游县| 大厂| 海盐县| 枣庄市| 屯留县| 普定县| 绥棱县| 柏乡县| 白玉县| 双牌县| 浪卡子县| 田阳县| 祁门县| 南皮县| 宜都市| 肇庆市| 驻马店市| 吉林省| 偃师市| 通许县| 太和县| 湘潭县| 鄂尔多斯市| 老河口市| 新巴尔虎左旗| 建平县| 宝清县| 富源县| 华池县| 安福县| 河南省| 黄石市| 霞浦县| 潞西市| 根河市| 东城区| 马公市| 义马市| 尉氏县| 襄樊市| 伽师县|