Hi
I am trying to change registration example in order to work with JBpm. but at
the first page it is a button with action #"{register.register}"
I define in pageflow if the user already exists tnot change the current page
and if not, go to next page, but It calls action register first and it check
the database and because user is not exist then that action persist the data
into the database and that action is calling again and in the second time, that
user already persisted so the current page staty intact and a message will be
displayed.
here is pageflow definition file:
| <pageflow-definition name="SeamPracticePageFlow">
|
| <start-page name="start" view-id="/pages/register.jsp">
| <transition name="register" to="checkUser" />
| </start-page>
|
| <decision name="checkUser" expression="#{register.alreadyExists}" >
| <transition name="false" to="registered" >
| <action expression="#{register.register}" />
| </transition>
| <transition name="true" to="start" />
| </decision>
|
| <page name="registered" view-id="/pages/registered.jsp">
| <redirect/>
| <transition name="welcomeMessage" to="listMessage" >
| <action expression="/pages/messages.seam" />
| </transition>
| </page>
|
| <page name="listMessage" view-id="/pages/messages.jsp">
| <redirect/>
| <end-conversation/>
| </page>
|
| </pageflow-definition>
|
and jsp file:
| <f:view>
| <h:form>
| <table border="0">
| <s:validateAll>
| <tr>
| <td>Username</td>
| <td><h:inputText value="#{user.username}" required="true"/></td>
| </tr>
| <tr>
| <td>Full Name</td>
| <td><h:inputText value="#{user.fullName}" required="true"/></td>
| </tr>
| <tr>
| <td>Password</td>
| <td><h:inputSecret value="#{user.password}"
required="true"/></td>
| </tr>
| </s:validateAll>
| </table>
| <h:messages/>
| <h:commandButton type="submit" value="Register"
action="#{register.register}"/>
| </h:form>
| </f:view>
|
and the action:
| @Create
| @Begin(join=true,pageflow="SeamPracticePageFlow")
| public void register() {
| try {
| if(isAlreadyExists()) {
| userNotExists = false;
| em.persist(user);
| logger.info("user #{user.username}
registered.");
| //return "/pages/registered.jsp";
| }else {
| logger.info("user #{user.username} already
registered.");
| userNotExists = true;
| }
| } catch (Exception e) {
| e.printStackTrace();
| }
|
| }
|
| public boolean isUserNotExists() {
| return userNotExists;
| }
|
| public boolean isAlreadyExists() {
| try {
| List registered = em.createQuery("select username from
User where username = :u")
| .setParameter("u",user.getUsername())
| .getResultList();
| if(registered == null || registered.size() == 0) {
| return true;
| }else {
| FacesMessages.instance().add("user
#{user.username} already exists.");
| return false;
| }
| }catch(Exception e) {
| e.printStackTrace();
| }
| FacesMessages.instance().add("something's wrong...");
| return false;
| }
|
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3981675#3981675
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3981675
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user