Если вы просто хотите создать модальное всплывающее окно и вызвать частичную отправку, я бы предложил использовать библиотеку тегов Richfaces, которую вы уже используете.
Чтобы создать модальное диалоговое окно, просто используйте тег для создания модальной панели:
<rich:modalPanel id="myModalPanel" minHeight="100" height="100" minWidth="100" width="100" zindex="2000">
Insert content for modal panel here
</rich:modalPanel>
Теперь вы можете добавить тег к кнопке или ссылке, чтобы скрыть и показать модальную панель:
<h:outputLink value="#" id="showLink">
<rich:componentControl for="myModalPanel" attachTo="showLink" operation="show" event="onclick" />
</h:outputLink>
<h:outputLink value="#" id="hideLink">
<rich:componentControl for="myModalPanel" attachTo="hideLink" operation="hide" event="onclick" />
</h:outputLink>
А для вызова ajax вы должны использовать тег внутри тега, который вы хотите сделать вызовом ajax. Так, например, если вы хотите, чтобы действие запускалось при изменении текста поля, вы должны сделать следующее:
<h:inputText id="myField" value="#{myBean.myField}">
<a4j:support ajaxSingle="true" event="onChange" reRender="list fields you want to rerender when the methods completes" action="#{myBean.methodToCall}" />
</h:inputText>