JSF拦截ajax请求并传递参数方法
我们可以利用f:ajax做一些简单的ajax操作,但是遇到复杂的逻辑,它不能简单的去实现,jsf提供了一种方法,可以调用它内部的js方法去实现复杂的逻辑。
首先要在页面引入jsf的js文件:
1 <h:outputScript library="javax.faces" name="jsf.js" />
这是一种固定的写法。
然后就是在组件中调用,示例性代码如下:
1 <h:commandButton id="request" value="ajax.request" actionListener="#{bean.changeId}" onclick="jsf.ajax.request( 2 this,event, 3 {render:‘ids‘, 4 execute:‘request‘, 5 x:‘bigbang‘, 6 onevent:function(event){ 7 alert(event.status); 8 }});return false;"> 9 10 </h:commandButton>
参数说明:
this:指代当前标签对象;
event:固定写法,指代当前方法
render:要渲染的组件ID
execute:请求组件的标识符,触发事件的对象
x:请求参数名,key-value形式
onevent:请求回调参数,参数event有三个状态,即begin,complete,success。
下一步是在bean里面取得传入的参数,示例性代码如下:
1 public void changeId(){ 2 ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); 3 String index = externalContext.getRequestParameterMap().get("x"); 4 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。