2012-08-10 168 views
0

所以我試圖爲每個用戶創建一個可自定義風格的網頁。您可以將樣式選項保存爲JSF bean屬性中的字符串,並且可以非常輕鬆地在網頁中使用內聯樣式屬性或<style>標籤訪問它們,但是誰使用內聯/ onpage樣式?JSF在樣式表中設置樣式?

有什麼辦法可以將這些屬性從JSF(2.0)bean轉發到我的樣式表,還是我只需要將<style>塊添加到我希望可定製的頁面?

編輯:我想我可以做一個函數將這些屬性寫入樣式表,爲每個用戶製作一個屬性,但這顯然不是首選。

+0

如果你使用'h:outputStylesheet'標籤,你可以在你的css中使用EL表達式。 – Adam 2012-08-11 15:14:49

回答

1

對於完全自定義,您可以保存所有可變元素及其樣式選項的樣式表,並將它們與bean屬性一起引用。

雖然這是相當多的樣式表,但您可以定義自己的樣式方案,併爲用戶在這些預定義的樣式表之間進行選擇。這不完全回答你的問題,但會節省很多工作

1

我不知道你的功能是什麼,但其中一個方案是 - >

<h:outputStylesheet library="css" name="#{userBean.styleSheetName}" /> 

凡「的UserBean」有表的名稱。

或者,您可以在樣式標籤之間輸出樣式表(如您所說)。如果你想堅持下去,你可以編寫一個讀取用戶會話並生成緩存樣式表的servlet。

我肯定會爲您建議的功能使用servlet路由,但如果它只是用戶有權訪問的樣式表的「集合」,我可能會按照第一個示例使用簡單的動態屬性。

+0

我應該說,你顯然將那些在資源/ css/sheetName.css – 2012-08-10 19:42:25