Witam.
Mam kilka pytań na temat tworzenia stron w jsf:
-
Parsowanie adresów/front controller.
Czy istnieje jakiś gotowiec pozwalający na ładne przetwarzanie i generowanie adresów? Mam tu na myśli rozwiązanie podobne do znanego z Zend Framework. Gdzie adresy wyglądają np jak www.mysite.pl/controller/action/paramname1/paramvalue1/paramname2/paramvalue2 -
Zmiana kolekcji podczas przetwarzania strony. Czy w momencie gdy zostanie wywołana jakaś akcja np delete, która usunie jeden z elementów kolekcji jest możliwe poprawne wyświetlenie listy elementów bez wykonania redirect-a?
<ui:composition
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:p="http://jspf.pozoga.eu/jstl">
<!--
modelManager - modelmanager for interface
-->
<c:set var="_editObjectAccessor" value="#{collectionAccessor.accessTo('modelManagerEditObject', modelManager.entityClass)}"/>
<c:set var="fields" value="#{modelManager.listingFields}" />
<h:form>
<table class="listing">
<!-- Fields Names -->
<tr>
<c:forEach var="field" items="#{fields}">
<th>#{msg[field]}</th>
</c:forEach>
</tr>
<!-- Values -->
<c:forEach var="record" items="#{modelManager.list}">
<tr>
<c:forEach var="field" items="#{fields}">
<td>#{record[field]}</td>
</c:forEach>
<!-- Controll Buttons -->
<td><h:commandButton value="#{msg.edit}" action="#{_editObjectAccessor.setIdLoad(record.id)}" /></td>
<td><h:commandButton value="#{msg.delete}" action="#{record.deleteAction()}" /></td>
</tr>
</c:forEach>
</table>
</h:form>
<!--#{_editObjectAccessor.formFields}-->
<h:form rendered="#{_editObjectAccessor.value!=null}" >
<p:formComposition>
<h:inputHidden value="#{_editObjectAccessor.idLoad}" />
<p:formInputEntity when="update" target="#{_editObjectAccessor}" property="createValue" valueClass="#{modelManager.entityClass}"/>
<p:formSection>
<h:commandButton value="#{msg.save}" action="#{_editObjectAccessor.value.updateAction()}" />
<h:commandButton immediate="true" value="#{msg.cancel}" action="#{_editObjectAccessor.remove()}" />
</p:formSection>
</p:formComposition>
</h:form>
<c:set var="newrecord" value="#{collectionAccessor.accessTo('modelManagerNew', modelManager.entityClass)}"/>
<p:form title="#{msg.newRecord}" rendered="#{_editObjectAccessor.value==null}">
<p:formInputEntity when="save" target="#{newrecord}" property="createValue" valueClass="#{modelManager.entityClass}" />
<p:formSection>
<h:commandButton value="#{msg[ 'add' ]}" action="#{newrecord.createValue.saveAction()}" />
</p:formSection>
</p:form>
</ui:composition>