2016-03-21 10 views
1

Ich bin ein neuer Java-Entwickler und ich brauche deine Hilfe. Ich habe schon Fragen gesehen - Antworten mit ähnlichem Thema, aber ich bin mir immer noch nicht sicher, wie ich damit umgehen soll, also dachte ich mir, um Hilfe zu bitten.Wie werden ausgewählte Kontrollkästchen angezeigt? Spring-Jsp

Ich benutze Liferay 6.2 & Frühling und ich habe eine JSP-Seite mit meinem Formular, das eine CaseType bearbeitet. In diesem Formular möchte ich ein Kontrollkästchen von Rollen hinzufügen (um die Berechtigungen auszuwählen). Ich möchte die ausgewählten Kontrollkästchen beim Bearbeiten eines CaseType anzeigen können. Mein Hauptproblem ist, dass ich nicht sicher bin, welche Variablen zu verwenden sind.

<form:form name="wblCaseType" method="post" modelAttribute="wblCaseType" action="${saveWblCaseType}"> 
<form:hidden path="wblCaseTypeId" /> 
<br/> 
    <table style="margin-left:80px"> 
<tbody> 
     <tr> 
      <td><form:label path="type"><liferay-ui:message key="type"/></form:label></td> 
      <td><form:input path="type" /><form:errors path="type" cssClass="errorClass" /></td> 
     </tr> 
     <tr> 
      <td><form:label path="createRoleIds"><liferay-ui:message key="roles"/></form:label></td> 
      <td><form:checkboxes path="createRoleIds" items="${roles}" value="${wblCaseType.createRoleIds}" itemValue="name" itemLabel="roleId" /></td> 
    </tr> 

Vielen Dank im Voraus für jede Hilfe!

+0

Warum wiederholen Sie nicht die Rollenliste und ein Kontrollkästchen für jede Anzeige? Ich habe kein Formular verwendet: Checkboxen vorher, ist es Frühling? Wenn nicht, sollten Sie '' Tags verwenden (z. B.' '). – Peter

+0

Vielen Dank für Ihre Antwort :) Ich versuche, die Antwort zu implementieren, die hier gegeben ist: http://stackoverflow.com/questions/35043873/spring-jsp-checkboxes-on-list-object –

Antwort

1

Okay, ich glaube, ich habe die Lösung gefunden. Mein Problem war, dass ich nicht den richtigen Getter/Setter in meinem Dto hatte.

Also in meinem Controller-habe ich die Liste, wo die Rollen kommen aus (liferay - Rollen)

@ModelAttribute("roles") 
public List<Role> getRoles() { 

    List<Role> allRoles = new ArrayList<Role>(); 
    try { 
     allRoles = RoleLocalServiceUtil.getRoles(QueryUtil.ALL_POS, 
    ueryUtil.ALL_POS); 
    } catch (SystemException e) { 
     logger.error("Could Not get any Liferay Roles" + e.getMessage(), e); 
    } 
    return allRoles; 
} 

In meinem Dto Code habe ich die Getter und Setter der die eine Verkettung von Strings empfängt/setzt.

public String[] getCreateRoleIdsArray() { 
    return createRoleIds.split(","); 
} 

public void setCreateRoleIdsArray(String[] selectedRoles) { 
    Logger.getLogger(this.getClass()).error("setCreateRoleIdsArray"); 
    String selRoles = new String(); 
    for (String role : selectedRoles) { 
     selRoles = selRoles + "," + role; 
    } 
    setCreateRoleIds(selRoles); 
} 

und schließlich in meiner jsp Datei

<form:form name="wblCaseType" method="post" modelAttribute="wblCaseType"action="${saveWblCaseType}"> 
<form:hidden path="wblCaseTypeId" /> 
.... 
<tr> 
    <td><form:label path="createRoleIds"><liferay-ui:message key="roles"/></form:label></td> 
    <c:forEach items="${roles}" var="role"> 
     <td><form:checkbox path="createRoleIdsArray" id="${role.roleId}" label="${role.name}" value="${role.roleId}" /></td> 
    </c:forEach> 
</tr>