在JSF页面中使用DWR调用Managed Bean的方法
如题,这么做的好处无非是可以利用DWR的AJAX特性,无需刷新页面就执行Java代码(JSF Managed Bean中的方法),网上有例子,我也试了一下,说一下使用的感受。
第一步:改web.xml,添加Servlet,添加filter 到相应位置,当然dwr.jar要放到WEB-INF/lib目录
dwr-invoker
uk.ltd.getahead.dwr.DWRServlet
debug
true
dwr-invoker
/dwr/*
下面这个据说是JSF调用必须的
DwrFacesFilter
uk.ltd.getahead.dwr.servlet.FacesExtensionFilter
DwrFacesFilter
/dwr/*
第二步:改dwr.xml文件,加入
第三步:在manged bean里添加shutdownThread方法,怎么写取决于想怎么用,我这里没有参数也没有返回值。
第三步:改JSF页面代码,添加DWR调用:
<script type="text/javascript"> </script>
……Onclick ="DWRshutdownThread()"
测试该页面,加入比如按钮就可以使用了。但是我发现这种调用JSF Managed Bean的方法是完全脱离JSF生命周期的,即可能该Managed Bean是在被调用时临时创建的,因此没法得到当前页面相关的Managed Bean变量的更改,只能体现Ajax免页面刷新的效果。
至于到底能不能做到体现当前页面相关的Managed Bean变量的更改,至少目前测试的结果不行,看到的朋友能否提供一些帮助呢。