course management bei application

Diskutiere course management bei application im Application Tier Forum; Hallo zusammen, ich habe ein System bei dem Kurse angelegt werden können und man diesen dann (vorausgesetzt das Passwort ist korrekt) auch...

  1. newUser()
    newUser() Neues Mitglied
    Hallo zusammen,

    ich habe ein System bei dem Kurse angelegt werden können und man diesen dann (vorausgesetzt das Passwort ist korrekt) auch beitreten kann. Jedoch funktioniert dies nur für einen User, sobald ein zweiter diesem beitreten will, funktioniert es nicht und er bleibt ewig auf der gleichen Seite (joinCourse). Es muss etwas mit dem zweiten Abschnitt im Java Code zu tun haben, wo überprüft wird, ob der Nutzer das Passwort korrekt eingegeben hat.

    Der relevante Teil der joinCourse Seite:
    HTML:

    <div class = "container" style="padding-top: 160px" align="center">
        <div class = "panel panel-default" style="background-color: rgba(52,73,94,0.7); width: 550px; margin-top: 70px">
            <p></p>
            <div class = "panel-body">
                <div class="panel-heading">
                    <p><b style=" font-size: 25px; color: #ffffff ; border-bottom: 4px solid #e8491d ; margin: 0 auto ; opacity: 0.7" th:text="'Join the course: ' + ${course.name}"></b></p>
                </div>
                <form th:action="@{/joinCourse(courseName=${course.name})}" th:object="${course}" method="post" autocomplete="off">
                    <label style="color: #ffffff" th:text="'Password of the course'">Password of the Course</label>
                    <input style="height: 30px; width: 300px; position: relative" th:placeholder="'Enter course password ...'" th:field="*{coursePassword}" name="coursePassword" id="coursePassword" type="password" class="form-control"/><br/>
                    <button id="button9" name="submit" type="submit" value="/joinCourse" th:text="'Join'" class="btn btn-default">Join</button> &nbsp;
                    <button id="button10" name="reset" type="reset" th:text="'Reset'" class="btn btn-default">Reset</button>
                </form>
            </div>
        </div>
    </div>
     
    der dazugehörige Java Controller:
    Code (Java):

    /**
    * Handles POST requests target at the joinCourse page
    *
    * @param coursePassword
    * @return the joinedCourse page
    */

    @RequestMapping(value = "/joinCourse", method = RequestMethod.POST)
    public String joinCourse(@RequestParam(value = "courseName") String name,
                             @RequestParam(value = "coursePassword") String coursePassword,
                             @Valid @ModelAttribute(value = "course") Course selectedCourse, BindingResult result,
                             Map<String, Object> model){

      //checks if the current user is already a member of the
      for(User user : courseService.findCourseByName(name).members){
        if(user.equals(userService.getCurrentUser())){
          model.put("currentUser", userService.getCurrentUser());
          model.put("courses", courseService.getAllCourses());
          List<Course> relevantCourses = new ArrayList<>(); //list of all courses where the current user is a member
          for(Course element : courseService.getAllCourses()){
            for(User theUser : element.members){
              //check if the user is a member of the course
              if(theUser.equals(userService.getCurrentUser())){
                relevantCourses.add(element);
              }
            }
          }
          model.put("currentUser", userService.getCurrentUser());
          model.put("courses", courseService.getAllCourses());
          model.put("relevantCourses", relevantCourses);
          return "overview";
        }
      }

      //checks if the password fits to the course
      if(bCryptPasswordEncoder.matches(coursePassword, courseService.findCourseByName(name).getCoursePassword())){
        Course course = courseService.findCourseByName(name);
        course.members.add(userService.getCurrentUser());
        courseService.persistCourse(course);

        model.put("currentUser", userService.getCurrentUser());
        model.put("courses", courseService.getAllCourses());
        List<Course> relevantCourses = new ArrayList<>(); //list of all courses where the current user is a member
        for(Course element : courseService.getAllCourses()){
          for(User user : element.members){
            //check if the user is a member of the course
            if(user.getUsername().equals(userService.getCurrentUser().getUsername())){
              relevantCourses.add(element);
            }
          }
        }
        model.put("relevantCourses", relevantCourses);
        return "overview";
      }

      model.put("course", courseService.findCourseByName(name));
      return "joinCourse";
    }
     
    Da der Nutzer immer bei joinCourse verbleibt treffen beide if Bedingungen nicht zu (wobei das bei der ersten ja auch gewünscht ist). Das heißt, dass bei der Kontrolle des Passworts, bzw. dem zweiten if-Abschnitt irgendetwas nicht richtig funktioniert. Das wundert mich, da es beim ersten mal (wenn sich der erste Nutzer anmeldet) noch korrekt funktioniert.

    Danke schon mal für eure Hilfe

    Gruß
    Patrick
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. newUser()
    newUser() Neues Mitglied
    Anmerkung: Ich verwende spring boot und thymeleaf.
     
  4. looparda
    looparda Aktives Mitglied
Die Seite wird geladen...

course management bei application - Ähnliche Themen

MouseEvent.getPint() ist nicht Courser Spitze
MouseEvent.getPint() ist nicht Courser Spitze im Forum Spiele- und Multimedia-Programmierung
Courser-Tasten
Courser-Tasten im Forum Java Basics - Anfänger-Themen
Scene Management
Scene Management im Forum AWT, Swing, JavaFX & SWT
Welches Datenbankmanagementsystem ist besser geeignet?
Welches Datenbankmanagementsystem ist besser geeignet? im Forum Datenbankprogrammierung
Maven distributionManagement Vererbung in child POM
Maven distributionManagement Vererbung in child POM im Forum Deployment
Thema: course management bei application