Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java Spring Basics Modeling, Storing, and Presenting Data Capture a URI Parameter

Ulugbek Aripov
Ulugbek Aripov
4,461 Points

Can you please clarify how id should be used?

Currently requirement is vague to me. I saw constructor with 4 variables and added id as first and arbitrary string for other - is not accepted. What I should do with id?

com/teamtreehouse/contactmgr/controller/ContactController.java
package com.teamtreehouse.contactmgr.controller;

import com.teamtreehouse.contactmgr.model.Contact;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.ui.ModelMap;

@Controller
public class ContactController {
    @RequestMapping("/")
    public String home() {
      return "index";
    }

    @RequestMapping("/contact/{id}")
    public String contact(@PathVariable int id, ModelMap modelMap) {
      Contact c = new Contact();
      modelMap.put("contact/",c);
      return "contact_detail";
    }
}
com/teamtreehouse/contactmgr/model/Contact.java
package com.teamtreehouse.contactmgr.model;

public class Contact {
  private int id;
  private String firstName;
  private String lastName;
  private String email;

  public Contact() {}

  public Contact(int id, String firstName, String lastName, String email) {
    this.id = id;
    this.firstName = firstName;
    this.lastName = lastName;
    this.email = email;
  }

  public int getId() {
    return id;  
  }

  public String getFirstName() {
    return firstName;  
  }

  public String getLastName() {
    return lastName;  
  }

  public String getEmail() {
    return email;  
  }

  public void setId(int id) {
    this.id = id;  
  }

  public void setFirstName(String firstName) {
    this.firstName = firstName;  
  }

  public void setLastName(String lastName) {
    this.lastName = lastName;  
  }

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

1 Answer

Patrik Horváth
Patrik Horváth
11,110 Points

you should go true JAVA basics, look at Contact Constructor 1st is empty so its nonsens make empty object .. but secount Request ID , Name , LastName, Emal so simple

but maybe you forget who know but all was good just you need add parameters to new Contact()

package com.teamtreehouse.contactmgr.controller;

import com.teamtreehouse.contactmgr.model.Contact;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.ui.ModelMap;

@Controller
public class ContactController {
    @RequestMapping("/")
    public String home() {
      return "index";
    }

    @RequestMapping("/contact/{id}")
    public String contact(@PathVariable int id,ModelMap modelMap) {
      Contact c = new Contact(id, "..", "..", "..");
      modelMap.put("contact",c);
      return "contact_detail";
    }
}
Ulugbek Aripov
Ulugbek Aripov
4,461 Points

@Patrik Horváth I know how to use constructors and if you carefully read my question I wrote that I added 4 params exactly as you did (I used different string values but same way). After that the Check Work did not accept that work. That is why I wonder what is needed.

Patrik Horváth
Patrik Horváth
11,110 Points

Contact c = new Contact(id, "..", "..", "..");

why just id ? because "@PathVariable int id"

this is missing from your code so i think this was bad but here is it if you put this and no accept then something is wrong on your side because its work for me perfect ( tryed win this chalange and i won :) so its works good

here are tips how to insert parameters inside Constructor int = 0

String = "xxx"

char = 'x'

double = 10.10