Java Intro to Java Web Development with Spark Bells and Whistles Redirecting

Bummer! Looks like you forgot to call redirect on the res object

The objective is: So now that you know how to do the redirection, we should clean up that sign-in method, instead of rendering a template. Please fix the current sign-in post to redirect to /. Clet's just redirect to the homepage.

However, I keep getting Bummer! Looks like you forgot to call redirect on the res object.

Can someone help me please!

com/teamtreehouse/courses/Main.java
package com.teamtreehouse.courses;

import com.teamtreehouse.courses.model.CourseIdea;
import com.teamtreehouse.courses.model.CourseIdeaDAO;
import com.teamtreehouse.courses.model.SimpleCourseIdeaDAO;
import spark.ModelAndView;
import spark.template.handlebars.HandlebarsTemplateEngine;

import java.util.HashMap;
import java.util.Map;

import static spark.Spark.*;

public class Main {
    public static void main(String[] args) {
        staticFileLocation("/public");
        CourseIdeaDAO dao = new SimpleCourseIdeaDAO();

        get("/sign-in", (req, res) -> {
            Map<String, Object> model = new HashMap<>();
            model.put("username", req.cookie("username"));
            return new ModelAndView(model, "index.hbs");
        }, new HandlebarsTemplateEngine());

        post("/sign-in", (req, res) -> {
            String username = req.queryParams("username");
            req.cookie("username");
            res.redirect("/index");
            return null;
         });


        get("/ideas", (req, res) -> {
            Map<String, Object> model = new HashMap<>();
            model.put("ideas", dao.findAll());
            return new ModelAndView(model, "ideas.hbs");
        }, new HandlebarsTemplateEngine());

        post("/ideas", (req, res) -> {
            String title = req.queryParams("title");
            // TODO:csd - This username is tied to the cookie implementation
            CourseIdea courseIdea = new CourseIdea(title,
                    req.cookie("username"));
            dao.add(courseIdea);
            res.redirect("/ideas");
            return null;
        });
    }
}

1 Answer

Seth Kroger
Seth Kroger
56,360 Points

The message is a bit misleading because you did use .redirect(), you just redirected to the wrong path. It says to redirect to "/", not "/index"

Thank you so much Seth Kroger. That was killing me.