第一种,普通的方法:
想在JSF控件中操作框架页Frameset,可以在左框架页(任一框架页)里声明一个Form,设定好它的target="mainFrame"(任一框架页的id),这样当点击这个Form里面的CommandButton或者CommandLink的时候,JSF处理好业务逻辑后,就可以将To-View-ID指定的页面转到主框架页里面去显示了。
<h:form target="mainFrame">
<h:commandButton action="index"> mainFrame
</h:form
点击左边的commandButton之后,index处理之后的To-View-ID指定的页面就会显示在mainFrame里面了
第二种方法:
<script>
function forward(p) {
window.parent.mainFrame.location.href="usermanagement/" + p + ".faces";
}
</script>
添加一个跳转函数,然后分情况添加跳转:
当不需要Action的时候
<rich:panelMenuItem label="角色信息维护" onclick="forward('rolelist')" />
这样就可以跳转了
当需要先进行Action操作再跳转的时候
<rich:panelMenuItem label="新建角色"
action="#{user.addRoleMain}" oncomplete="forward('roledetail')" />
这样,在Action完成后,菜单页不会变,主框架页会跳转到指定页面。
OK,上面两种方法基本能满足开发需要了。