ser*_*nni 6 javascript java jsf
有可能做到:
jsf代码(伪):
...
<f:param name="arg" value="document.getElementById('naming').text()">
<h:inputText id="naming"></h:inputText>
...
Run Code Online (Sandbox Code Playgroud)
我的意思是方法,什么时候<f:param>用JS设置.
这是不好的做法吗?
感谢帮助.
您需要使用a4j commandButton并且actionParam能够将动态参数传递回服务器.
此外,您需要bean上的一个属性来接收param值.
例:
<a4j:commandButton action="#{myBean.action}" value="Submit!">
<a4j:actionParam name="arg" noEscape="true" value="getTheValue()" assignTo="#{myBean.myBeanArg}" />
</a4j:commandButton>
Run Code Online (Sandbox Code Playgroud)
这里myBean.myBeanArg将收到javascript函数返回的值getTheValue().
注意该noEscape="true"属性.这是必需的,因为否则内部数据value将用单引号括起来并进行转义,从而导致无法执行javascript.如文档中所述:
可以在"value"属性中使用JavaScript表达式或函数.在这种情况下,"noEscape"属性应设置为"true".此JavaScript调用的结果将作为值发送到服务器
<a4j:actionparam>.