1.0 其他語言 |
||||
3.2 控制器 Controller |
||||
|
org.velocityweb.controller.Controller 是一個純 Java 類。使用 VelocityWeb 的應用程式應該寫一個 Controller 類的子類。在 VelocityWeb 中有另一個類是 org.velocityweb.controller.Controller 的子類,類名叫 org.velocityweb.controller.impl.SimpleController。新的應用程式應該寫一個新類,比如,PetStoreController,讓它成為 SimpleController 或者 Controller 的子類。一般地,新的控制器應該覆蓋以下函數︰
在 VPetstore 中有一個現成的例子,PetStoreController 使用 JNDI 來尋找資料源,這也是 Web 應用程式正常執行的工作方式︰ |
|||
public class PetStoreController extends SimpleController { |
||||
對于單元測試,我們需要寫一個新的控制器,覆蓋函數 getDataSource()。比如,我們可以使用 Apache DBCP 來提供資料源︰
|
||||
public class TestPetStoreController extends PetStoreController { |
||||
函數 getDataSource() 是 protected,是為了防止 DAO 類之外的代碼呼叫它。我們將這個 Datasource 物件放入到 AppContext 物件中,然後會從 web 層的分發器 dispatcher 傳到 DAO 層中。 |
||||