Ajax 请求和属性
Ajax request and attributes
我正在尝试 this tutorial,它描述了如何将属性设置为服务器调用以及如何分析支持 bean 上的属性;
<h:commandButton id="submit"
actionListener="#{userData.attributeListener}" action="result">
<f:attribute name="value" value="Show Message" />
<f:attribute name="username" value="JSF 2.0 User" />
</h:commandButton>
我在谷歌上搜索了很多,但大多数示例都显示了如何为同步调用设置属性,而不是为异步调用设置属性:S 所以我的问题是......如何在服务器上发送属性,如果那是 ajax 调用以及如何将它们放在支持 bean 上(参见建议 A 代码片段)?
建议A:
<h:commandButton id="submit"
actionListener="#{userData.attributeListener}" action="result">
<f:ajax>
<f:attribute/>? how to
</f:ajax>
</h:commandButton>
如果有关于这个问题的好教程,请分享 link :)
谢谢
好的,我刚刚编写了一个测试,将 ajax 块的属性设置为:
<h:commandButton id="submit"
actionListener="#{userData.callWithAttributes}" action="result">
<f:attribute name="a" value="#{testa}"/>
<f:attribute name="b" value="#{testb}"/>
<f:ajax .../>
</h:commandButton>
...以及支持 bean
...
public void callWithAttributes(ActionEvent e){
String a=(String) e.getComponent().getAttributes().get("a");
...
}
...
看起来工作正常 :) 所以属性应该放在事件制作组件块中 - h:commandButton
在这种特殊情况下...
要在支持 bean 中设置两个属性,您可以使用 f:setPropertyActionListener
<h:commandButton action="#{bean.method}">
<f:setPropertyActionListener value="#{testA}" target="#{bean.valueA}/>
<f:setPropertyActionListener value="#{testB}" target="#{bean.valueB}/>
</h:commandButton>
或使用 EL 方法参数支持:
<h:commandButton action="#{bean.method(testA, testB)}"/>
我正在尝试 this tutorial,它描述了如何将属性设置为服务器调用以及如何分析支持 bean 上的属性;
<h:commandButton id="submit"
actionListener="#{userData.attributeListener}" action="result">
<f:attribute name="value" value="Show Message" />
<f:attribute name="username" value="JSF 2.0 User" />
</h:commandButton>
我在谷歌上搜索了很多,但大多数示例都显示了如何为同步调用设置属性,而不是为异步调用设置属性:S 所以我的问题是......如何在服务器上发送属性,如果那是 ajax 调用以及如何将它们放在支持 bean 上(参见建议 A 代码片段)?
建议A:
<h:commandButton id="submit"
actionListener="#{userData.attributeListener}" action="result">
<f:ajax>
<f:attribute/>? how to
</f:ajax>
</h:commandButton>
如果有关于这个问题的好教程,请分享 link :)
谢谢
好的,我刚刚编写了一个测试,将 ajax 块的属性设置为:
<h:commandButton id="submit"
actionListener="#{userData.callWithAttributes}" action="result">
<f:attribute name="a" value="#{testa}"/>
<f:attribute name="b" value="#{testb}"/>
<f:ajax .../>
</h:commandButton>
...以及支持 bean
...
public void callWithAttributes(ActionEvent e){
String a=(String) e.getComponent().getAttributes().get("a");
...
}
...
看起来工作正常 :) 所以属性应该放在事件制作组件块中 - h:commandButton
在这种特殊情况下...
要在支持 bean 中设置两个属性,您可以使用 f:setPropertyActionListener
<h:commandButton action="#{bean.method}">
<f:setPropertyActionListener value="#{testA}" target="#{bean.valueA}/>
<f:setPropertyActionListener value="#{testB}" target="#{bean.valueB}/>
</h:commandButton>
或使用 EL 方法参数支持:
<h:commandButton action="#{bean.method(testA, testB)}"/>