js向jsf调用后台方法并传递参数

使用p:remoteCommand来达到复杂的异步刷新取值
大家请注意,这个方法可以真正的解决在jsf中通过js调用后台bean方法并获取bean方法返回值的问题。

同样,首先我们要写两个jsf组件,来和后台bean结合

<h:inputHidden id=“input1” value="#{advancedQueryManager.vals}"></h:inputHidden>
<h:form>
<p:remoteCommand name=“processSelection”
action="#{advancedQueryManager.testReturn}" update=":input1"
oncomplete=“processResult();” />
</h:form>
解释一下,上面的的这个inputHidden的作用是接收后台bean处理后的返回值。remoteCommand的作用是将js中的动态的值传递到后台bean方法。

function processResult() {
//接收后台bean方法中传递过来的处理结果,接收方法是获取inputHidden中的值,并可根据自己的业务继续处理
alert($(’#input1’).val());
}

function makeSelection() {
//普通的html组件调用这个js
//将想要传递到后台的动态值封装成json格式的值,传给p:remoteCommand,然后由这个组件传给bean方法
processSelection([ {name : ‘setVal’,value : ‘getIt’} ]);
}

最后是后台bean方法代码:

public void testReturn() {
String selectedValue = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(“setVal”);
System.out.println("------>"+selectedValue);
//拦截到这个页面传过来的值后可以进行你自己的业务处理
//并将处理结果返回给vals,这个vals是这个bean中的一个属性
vals = “getResult”;

}
至此,jsf中使用js函数将普通的html组件的值动态的传递到后台bean方法并接受后台处理结果已经成功得到解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值