参数值的方式是否有可能做的事:集合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中的属性。