reg*_*nzy 4 javascript ajax jsf json javabeans
我有一个JSF文件,需要从我从JS函数获得的数据填充,我从Ajax调用到Web服务.后一部分就像一个魅力.我能够从ajax调用中检索JSON数据.我需要解析这个json数据并获取数据并使用它来填充JSF.我不确定如何从JSF/xhtml访问JS变量.
有可能在某种程度上这样做吗?我正在经历一些DWR的东西,它们会将JS发送给Java bean的ajax帖子,我可以使用JSF中的bean变量.但是,我想知道是否还有其他方法可以做到这一点.
我非常感谢任何帮助.我正在使用JSF 2.x顺便说一句.
谢谢,S.
您可以使用以下"hack"来让JS向JSF提交信息.
使用<f:ajax>hook 创建一个不可见的JSF表单:
<h:form prependId="false" style="display:none;">
<h:inputText id="input" value="#{bean.input}">
<f:ajax event="change" execute="@form" listener="#{bean.process}" render=":something" />
</h:inputText>
</h:form>
Run Code Online (Sandbox Code Playgroud)
让JS更新输入字段并触发change事件:
<script>
function somefunction() {
var input = document.getElementById('input');
input.value = 'your JSON string';
input.onchange();
}
</script>
Run Code Online (Sandbox Code Playgroud)
在listener方法中执行Java/JSF作业:
private String input; // +getter +setter
public void process(AjaxBehaviourEvent event) {
doSomethingWith(input);
}
Run Code Online (Sandbox Code Playgroud)
将所需的JSF标记放入一个<h:someComponent id="something">将在完成其工作<f:ajax render=":something">时重新呈现的标记listener:
<h:panelGroup id="something">
The JSON string was: <h:outputText value="${bean.input}" />
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)
也就是说,我更喜欢在托管bean的构造函数或操作方法中而不是在JS中进行webservice调用.你的方法实际上是一个回旋处.
| 归档时间: |
|
| 查看次数: |
9200 次 |
| 最近记录: |