2009-11-10 53 views
0

可以以某種方式將JSF標籤添加到我的JSF組件渲染器類中嗎?我試圖用這種方式:JSF組件渲染器中的JSF標籤

 writer.append("<f:param name=\"active\" value=\""+tabName+"\"/>"); 

但是,這個標記不被編譯器識別爲JSF標記。

回答

1

Renderer response phase中調用的渲染器中添加JSF標記爲時已晚並且無法工作。您需要根據您想要執行的操作修改java或override renderer中的組件樹。評論

編輯,讓你這樣做在JSF頁面就像this example。您需要注意<f:param>需要是<h:commandLink>標記的子元素。我想你的問題是關於如何將參數傳遞到下一頁。這可以通過創建適當的<f:param>方式來完成,或者像使用Struts一樣使用隱藏的輸入字段。在這兩種情況下,您都需要在backing bean中有字段來存儲值或從請求中獲取值。

+0

例如,在我的渲染器中,我有一些鏈接,並且我想知道哪些鏈接被按下。我不能使用任何Javascript,但我需要傳遞參數與該鏈接。谷歌說,我需要使用h:commandLink來傳遞參數。有沒有其他的方式,我可以如何傳遞參數與我的鏈接?在Struts中,我通過了他們:qwerty.do?param1=value1¶m2=value2。 – Yurish 2009-11-10 09:24:43

+1

@Yurish - 如果您嘗試向「

」動作網址添加參數,您可能會發現這很困難。看到這個答案:http://stackoverflow.com/questions/1560601/navigation-in-java-server-faces-redirecting-with-correct-paramters,也許這一個:http://stackoverflow.com/questions/1526299/創建一個編輯我的項目頁面在Java服務器面對與facelets – McDowell 2009-11-10 09:56:38

+0

@cetnar Yurish說,他不能使用JavaScript,但'h:commandLink'需要它(沒有其他人使用' McDowell 2009-11-10 10:01:09