最近做个项目,使用到frameset html框架完成,视图技术采用Jsf + richfaces实现,在开发过程中发现,jsf的视图不能表现响应数据库的变化.(在frame页面框架中:在A页面进行数据库操作,B页面是个关联到A页面数据的子表数据的crud页面),正常情况下,删除了A页面的主表数据,B页面的子表记录应该删除.但是.发现B页面的子表相关数据依旧保留,而数据库是已经做了级联删除并且已经提交了的.

在这种情况下,可以采用以下做法

we.xml中

context-param>
<param-name>onload-config</param-name>
<param-value>/WEB-INF/onload-config.xml</param-value>
</context-param>

faces-config.xml中:

<lifecycle>
<phase-listener>net.sf.jsfcomp.onload.OnLoadPhaseListener</phase-listener>
</lifecycle>

onload-config.xml中:

<?xml version="1.0" encoding="UTF-8"?>

<onload-config xmlns="urn:onload-config"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="urn:onload-config onload-config.xsd">

<navigation-rule>
<view-id>/welcome.jsp</view-id>
<action>#{bean.actionMethod}</action>
</navigation-rule>
<navigation-rule>
<view-id>/path*</view-id>
<action>#{bean.actionMethod}</action>
</navigation-rule>
</onload-config>

使得在加载页面的时候,指定执行某个method.避免相关页面数据的不一致


英文文档:http://jsf-comp.sourceforge.net/components/on-load/index.html

posted on 2012-03-28 13:37  七月逆流  阅读(938)  评论(0编辑  收藏  举报