vendredi 12 juin 2015

JSF 2.1 Create, Update, Read and Delete Operations with popup Validations

Needs

1.Adding users

2.Updating the User and save the new updated Value

3.Selected value should be deleted

Errors

1.When I click on add Button User value adding successfully and only one value I can able to add (i.e) old value get replaced.

2.While I click add Button again to add another user it holds the previous data.

3.When I click on add Button popup opens and if I didn'f fill the text fields values, popup closes with out showing the validation errors.

5.When I click on update Button the added values wants to be edited and want to replace the old values.

6.When I click on delete Button the particular row alone want to be deleted but it clears all the available values.

index.html

  xmlns:f="http: http://ift.tt/HcrI1S"

  xmlns:h="http: http://ift.tt/HjFrZb"

  xmlns:p="http: http://ift.tt/1e2wLl8">

<h:head> 

</h:head>

<h:body>

    <center>   

        <h:form id="formcrud">

            <p:dialog id="reset_reset" header="Add New User" widgetVar="id2" modal="true" width="500">


                <h:outputLabel for="#{userManagedBean.username}" value="UserName" style="margin-right:30px;"/>

                <p:inputText value="#{userManagedBean.users.username}" label="UserName" required="true"
                             id="username" requiredMessage="Username is Required" style="margin-bottom:20px;"></p:inputText>

                <p:message for="username"/>

                <h:outputLabel for="#{userManagedBean.firstname}" value="FirstName" style="margin-right:30px;"/>

                <p:inputText value="#{userManagedBean.users.firstname}" label="FirstName" required="true"
                             id="firstname" requiredMessage="Firstname is Required" style="margin-bottom:20px;"></p:inputText>

                <p:message for="firstname"/>

                <h:outputLabel for="#{userManagedBean.lastname}" value="LastName" style="margin-right:30px;"/>

                <p:inputText value="#{userManagedBean.users.lastname}" label="LastName" required="true"
                             id="lastname" requiredMessage="Lastname is Required" style="margin-bottom:20px;"></p:inputText>

                <p:message for="lastname"/>

                <h:outputLabel for="#{userManagedBean.users.emailId}" value="Email" style="margin-right:70px;"/>

                <p:inputText id="email" required="true" label="email"
                             requiredMessage="Please enter your email address."
                             validatorMessage="Invalid email format"
                             value="#{userManagedBean.users.emailId}" style="margin-bottom:20px;" >
                    <f:validateRegex pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
                </p:inputText>

                <p:message for="email"/><br></br>

                <h:commandButton type="submit" value="Add" actionListener="#{userManagedBean.createUser}" update="Add New User" process="@this"/>
                <h:commandButton type="submit" value="Cancel"  style="margin-left:20px;"></h:commandButton>

                <h:commandButton type="submit" value="Update"  style="margin-left:20px;" actionListener="#{userManagedBean.updateUser}"></h:commandButton>

                <h:commandButton type="reset" action="#{userManagedBean.clear('reset_reset')}" value="Reset"></h:commandButton>


            </p:dialog>        


            <h:commandButton type="button" value="Add" onclick="id2.show()" style="margin-left:500px;"></h:commandButton>

            <h:commandButton type="button" value="Update" actionListener="#{userManagedBean.updateUser}" onclick="id2.show()"/>

            <h:commandButton type="submit" value="Delete" actionListener="#{userManagedBean.deleteUser}"/>


            <p:panel header="Manage Users" style="width: 700px; font-size: 15px;" id="formclear">

                <p:dataTable var="user" value="#{userManagedBean.userService.createlist}"
                             selection="#{userManagedBean.selectedUser}" selectionMode="single"
                             dynamic="true"
                             onRowSelectUpdate="userUpdateForm"
                             onRowUnselectUpdate="userUpdateForm"
                             rowSelectListener="#{userManagedBean.onUserSelect}"
                             rowUnselectListener="#{userManagedBean.onUserUnselect}"
                             paginator="true" rows="5" style="width: 700">

                    <p:column >
                        <f:facet name="header">
                            <h:outputText value="UserName" />
                        </f:facet>
                        <h:outputText value="#{user.username}" />
                    </p:column>

                    <p:column >
                        <f:facet name="header">
                            <h:outputText value="FirstName" />
                        </f:facet>
                        <h:outputText value="#{user.firstname}" />
                    </p:column>

                    <p:column >
                        <f:facet name="header">
                            <h:outputText value="LastName" />
                        </f:facet>
                        <h:outputText value="#{user.lastname}" />
                    </p:column>

                    <p:column >
                        <f:facet name="header">
                            <h:outputText value="Email" />
                        </f:facet>
                        <h:outputText value="#{user.emailId}" />
                    </p:column>

                </p:dataTable>



            </p:panel>

        </h:form>   
    </center>
</h:body>

user.java

public class User {

private String username;
private String firstname;
private String lastname;
private String emailId;

public User() {
}

public User(String username, String firstname, String lastname, String emailId) {
    this.username = username;
    this.firstname = firstname;
    this.lastname = lastname;
    this.emailId = emailId;
}

public String getEmailId() {
    return emailId;
}

public void setEmailId(String emailId) {
    this.emailId = emailId;
}

public String getFirstname() {
    return firstname;
}

public void setFirstname(String firstname) {
    this.firstname = firstname;
}

public String getLastname() {
    return lastname;
}

public void setLastname(String lastname) {
    this.lastname = lastname;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

String setUsername() {
    throw new UnsupportedOperationException("Not yet implemented");
}

}

UserManagedBean.java

@ManagedBean @ApplicationScoped

public class UserManagedBean {

UserService userService = new UserService();
User users = new User();
private String username;
private String firstname;
private String lastname;
private String email;
private String addUsers;
private Collection<User> addUsersResults;
private User selectedUser;
private String reset;

public String register() {
    return "home";
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getFirstname() {
    return firstname;
}

public void setFirstname(String firstname) {
    this.firstname = firstname;
}

public String getLastname() {
    return lastname;
}

public void setLastname(String lastname) {
    this.lastname = lastname;
}

public User getSelectedUser() {
    if (selectedUser == null) {
        selectedUser = new User();
    }
    return selectedUser;
}

public void setSelectedUser(User selectedUser) {
    this.selectedUser = selectedUser;
}

public String getAddUsers() {
    return addUsers;
}

public void setAddUsers(String addUsers) {
    this.addUsers = addUsers;
}

public Collection<User> getAddUsersResults() {
    return addUsersResults;
}

public UserService getUserService() {
    return userService;
}

public void setUserService(UserService userService) {
    this.userService = userService;
}

public User getUsers() {
    return users;
}

public void setUsers(User users) {
    this.users = users;
}

public String updateUser() {
    userService.update(users);
    return "index";
}

public String createUser() {
    userService.create(users);
    return "index";
}

public String deleteUser() {
    userService.delete(users);
    return "";
}

public String clear(final String parentComponentId) {
    UIViewRoot view = FacesContext.getCurrentInstance().getViewRoot();
    UIComponent fc = view.findComponent(parentComponentId);
    if (null != fc) {
        List<UIComponent> components = fc.getChildren();
        for (UIComponent component : components) {
            if (component instanceof UIInput) {
                UIInput input = (UIInput) component;
                input.resetValue();
            }
        }
    }
    return null;
}

}

UserService .java

public class UserService {

private List<User> createlist = new ArrayList<User>();

public List<User> getCreatelist() {
    return createlist;
}

public void setCreatelist(List<User> createlist) {
    this.createlist = createlist;
}


public void create(User user) {

        createlist.add(user);
    }

public Collection<User> getAllUsers() {
    return USERS_TABLE.values();
}

public User getUser(String username) {
    return USERS_TABLE.get(username);
}

public Collection<User> addUsers(String username) {

    return createlist;
}


public void update(User user) {
    if (createlist.contains(user)) {
        createlist.set(1, user);
    }


public void delete(User user) {
    createlist.contains(user);
    user.setUsername("");
    user.setFirstname("");
    user.setLastname("");
    user.setEmailId("");
}

}

Aucun commentaire:

Enregistrer un commentaire