Академический Документы
Профессиональный Документы
Культура Документы
Gavin King
gavin.king@jboss.com
gavin@hibernate.org
<h:messages/>
<h:messages/>
//etc...
<navigation-rule>
<from-view-id>/getDocument.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>editDocument.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/editDocument.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>findDocument.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<h:messages/>
@Valid
private Document document;
public Document getDocument() { return document; }
@Begin
public String get() {
document = em.find(Document.class, id);
return document==null ? “notFound” : “success”;
}
@End @IfInvalid(outcome=REDISPLAY)
public String save(Document doc) {
document = em.merge(doc);
return “success”;
}
}
<start-state name=“get”>
<transition name=“notFound” to=“not found”/>
<transition name=“success” to=“edit”/>
</start-state>
</pageflow-definition>
<start-state name=“start”>
<transition to=“get”>
<action expression=“#{documentEditor.get}”/>
</transition>
</start-state>
<decision expression=“#{documentEditor.found}”>
<transition name=“false” to=“not found”/>
<transition name=“true” to=“edit”/>
</decision>
</pageflow-definition>
<start-state>
<transition to="review"/>
</start-state>
<task-node name="review">
<task name="review">
<assignment actorId=“#{user.manager.id}” />
</task>
<transition name="approve" to="complete"/>
<transition name="reject" to="complete"/>
</task-node>
<end-state name="complete"/>
</process-definition>
@In @Out
private User currentUser;