学习JSF的时间不长,最近遇到了一个问题就是,我点击打开一个对话框后,勾选上几个复选框,点击“确定”按钮后,需要先经过前台JS处理一下勾选的内容,然后将处理的内容传到后台进行处理,在网上搜了一天也没搜出个什么结果,后来请教了下一个大牛,原来可以通过如下方法来实现:
在xhtml页面Button按钮代码如下
<a4j:commandButton value="test_msgs.product_dianshang_button_ok" style="border" style="border:1px solid #D7D7D7;" οnclick="selectMethodNeedIds();">
<h:graphicImage style="position:relative;left:-64px;top:2px" url="../../resources/dianshan/image/confirm.png"></h:graphicImage>
</a4j:commandButton>
接着进行JS处理
function selectMethodNeedIds(){
//省略业务处理过程
//JS处理完业务逻辑后,要把处理的结果传到<a4j:jsFunction>当中,假如有两个参数(selectIds,operType)需要传
var selectIds = selectIds;
var operType = '3';
transparm(selectIds,operType);
}
//利用<a4j:jsFunction>来接收JS传来的数据
<a4j:jsFunction name="transparm" immediate="true" action="#{testBean.saveSelectEntity()}">
<a4j:parm name="selectIds"/>
<a4j:parm name="operType"/>
</a4j:jsFunction>
//经过上面处理之后就可以把两个参数传到后台testBean当中了,在testBean当中获取两个参数的方法如下:
String selectIds = (String)getRequestParamValue("selectIds");
String operType = (String)getRequestParamValue("operType");
取到这两个参数你你就可以随意做后台处理了!!!