參數值的方式是否有可能做的事:集合F:使用JavaScript
JSF代碼(僞):
...
<f:param name="arg" value="document.getElementById('naming').text()">
<h:inputText id="naming"></h:inputText>
...
我的意思是方法,當<f:param>
設置與JS。
這是不好的做法嗎?
感謝您的幫助。
參數值的方式是否有可能做的事:集合F:使用JavaScript
JSF代碼(僞):
...
<f:param name="arg" value="document.getElementById('naming').text()">
<h:inputText id="naming"></h:inputText>
...
我的意思是方法,當<f:param>
設置與JS。
這是不好的做法嗎?
感謝您的幫助。
您需要使用a4j的commandButton
和actionParam
才能將動態參數傳遞迴服務器。
此外,您需要bean上的一個屬性,它將接收參數值。
實施例:
<a4j:commandButton action="#{myBean.action}" value="Submit!">
<a4j:actionParam name="arg" noEscape="true" value="getTheValue()" assignTo="#{myBean.myBeanArg}" />
</a4j:commandButton>
這裏myBean.myBeanArg
將接收由JavaScript函數getTheValue()
返回的值。
注意noEscape="true"
屬性。這是必要的,因爲否則value
中的數據將被括在單引號中並轉義,導致不執行JavaScript。正如在documentation指出:
它可以使用在「值」屬性 JavaScript的表達或功能。在這種情況下,「noEscape」屬性應設置爲 「true」。此JavaScript調用的結果作爲值
<a4j:actionparam>
發送到服務器 。
<f:param>
是服務器端的東西,而JavaScript是客戶端。所以你不能
您可以使用Ajax a4j
要做到這一點,
你就是不行。 例如,您可以更改鏈接的屬性,並在服務器端的操作方法中獲取此屬性。
或者,您可以使用一個隱藏的輸入字段鏈接到您的bean中的屬性。