我正在将JSP值传递给JSF的支持bean。一旦我在bean中获得值,然后我尝试使用setter方法将值分配给inputText字段,就像这样。
public void testProcess(){
empBean.setEmpName(empBean.getEmpId());
}
在JSP页面的操作中调用testProcess方法。
我的问题是当我在bean中设置值时,JSF页面的值没有被填充。我需要显式刷新JSF页面吗?如果需要,我该怎么做?
是的,您需要刷新主页面。在服务器上发生的事情不会自动在客户端(浏览器)上发生。
这类操作的一个相当常见的模式是让弹出窗口使用ajax完成表单发布(对于像jQuery这样的许多javascript框架来说很容易)。请参阅http://jquery.malsup.com/form/获得一个使用jQuery表单插件的示例。在ajax调用的响应处理程序中,重新加载主页(使用窗口)。属性)并关闭弹出窗口。在jQuery表单插件的例子中,你可以这样做:
<script type="text/javascript">
// wait for the DOM to be loaded
$(document).ready(function() {
// bind 'myForm' and provide a simple callback function
$('#myForm').ajaxForm(function() {
// reload main page
window.opener.location.reload();
// close popup
window.close();
});
});
</script>
您想要使用ajax提交表单的原因是,您想要等待刷新主页,直到发布完成,并且执行常规发布将导致重新加载弹出窗口,这在某些浏览器中会使窗口无效。