communicating between beans in request scope
I have list.jsp that has a table of items with a link to edit each item like so
<h:dataTable value="#{list.model}" var="curItem">
<h:commandLink actionListener="#{item.doActionEdit}" action="edit">
<h:outputText value="#{curItem.id}"/>
<f:param name="id" value="#{curItem.id}"/>
</h:commandLink>
</h:dataTable>
edit is map to item.jsp
when i click on the link the item bean gets called and doActionEdit sets up the id and fetches data from db but then the bean gets recreated (from scratch and all data is lots id is unset) and it loads item.jsp with and empty bean.
This only happens when item bean is in request scope, however when it is in session scope it works fine, which brings the question; how can I pass objects to a bean that is in the request scope?
I have tries to map id of item in faces-config.xml with #{param.id} which works fine if id is passed but fails with a npe when item.jsp loads without id (say I want to create a new item.)
Please advise me what is the best approach to communicate between beans in request scope, so it will work with and without id being passed.

