WebObjects/Wirehose/動態佈局
WireHose 應用程式可以具有多種使用者介面外觀。這可以用於從單個程式碼庫支援多個品牌關聯公司,如應用程式服務提供商環境,或者允許使用者個性化其頁面的外觀,除了個性化其內容。您還可以使用此功能來支援多種輸出格式,例如 XML、HDML、SMIL、RSS、RDF 等。
WireHose 應用程式中的每個獨立外觀都稱為佈局。佈局在名為**佈局字典**的檔案中定義。您可以以程式設計方式提供佈局字典,或者在命令列上指定佈局字典檔案的位置。**WHSessionHelper**是用於訪問佈局字典的主要物件。
預設情況下,WireHose 將使用使用者 currentLayout 屬性的值來確定要使用的佈局。它還可以透過嗅探 HTTP 請求標頭自動確定要使用的佈局,這對於使用者使用手持裝置或其他非 HTML 客戶端時臨時覆蓋使用者的佈局首選項非常有用。
與所有 WebObjects 應用程式一樣,WireHose 應用程式由頁面和元件組成。您可以為給定佈局替換頁面和元件;會話幫助程式使用佈局字典來確定要使用的元件。每個佈局都與一個關聯的**WHWrapper**,它定義了該佈局的外觀。包裝器和頁面還可以使用**WHArea**元件在頁面上定義多個區域。例如,一個三欄佈局可以定義三個區域,“左側”、“中間”和“右側”,而另一個佈局可能只包含一個“主要”區域。通道透過其 areaName 屬性對映到特定區域;您可以透過佈局字典中的條目將一個佈局中的區域對映到另一個佈局。
繼承自**WHComponent**的元件可以選擇透過佈局字典解析其繫結,而不是由父元件直接設定。元件的顏色繫結可以在一個區域解析為“藍色”,而在另一個區域解析為“綠色”,具體取決於當前區域、頁面和佈局。
**WHSessionHelper**提供了根據會話的語言陣列返回本地化字串的方法,並且將在多個地方查詢以解析該值。您可以為特定頁面上的特定元件或特定元件或特定頁面定義字串。您還可以為框架中的元件提供預設本地化,這些本地化可以在特定應用程式中被覆蓋。您還可以定義佈局字典中的非本地化字串。**WHPropertyBinder**物件用於獲取本地化標籤和值以繫結到彈出選單。
**WHDirectAction**提供了一種機制,用於自動檢測客戶端瀏覽器中是否啟用了 Cookie,並相應地控制會話 ID 是否在 URL 中可見。**WHHyperlink**是一個動態元素,它包含對 URL 重寫的支援,類似於 Apache 的 mod_rewrite,但它應用於您的應用程式生成的 URL。這兩個類結合在一起,使您的應用程式能夠具有乾淨、可書籤的 URL,例如“/WireHoseDemo/MyHomePage”,並且仍然提供個性化會話。
使用 Gary Teter 的許可開始內容。WireHose 和眼球和箭頭徽標是 Gary Teter 的商標。