Table of Contents:
- Basic points about @PathVariable and @RequestParam annotations.
- @PathVariable annotations Example in Spring Boot.
- @RequestParam example in Spring Boot.
Basic points about @PathVariable and @RequestParam annotations.
@PathVariable annotation-
- This annotation introduced in Spring 3.0, available in org.springframework.web.bind.annotation package.
- Optional elements ( name, required, value).
- This annotation used as a method parameter.
- It takes placeholder value from URI.
- The example of rest URI when we use @PathVariable – http://localhost:9093/rest/listofbooks/{bookId}
@RequestaParam annotation-
- This annotation introduced in Spring 2.5, available in org.springframework.web.bind.annotation package.
- Optional elements (name, required, value).
- This annotation used as a method parameter.
- It takes parameter value from URI.
- The example of rest URI when we use @RequestParam –
– http://localhost:9093/rest/listofbooks/{bookId}/book?bookName=book1
@PathVariable annotations Example in Spring Boot.
prerequisites –
- JDK 1.8
- Eclipse
- maven
- postman
Create maven project, Don’t forget to check ‘Create a simple project (skip)’click on next. Fill all details(GroupId – pathvariableexample, ArtifactId – pathvariableexample and name – pathvariableexample) and click on finish. Keep packaging as the jar.
POM.XML
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>pathvariableexample</groupId>
<artifactId>pathvariableexample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>pathvariableexample</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
Book.java
package com.onlintutorials.tech;
public class Book {
int bookId;
String bookName;
String bookPrice;
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getBookPrice() {
return bookPrice;
}
public void setBookPrice(String bookPrice) {
this.bookPrice = bookPrice;
}
}
BookController.java
package com.onlinetutotrials.tech;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
@RestController
@RequestMapping(value = "/rest")
public class BookController {
@RequestMapping(value = "/book/{bookId}",method = RequestMethod.GET)
public Book getBookById(@PathVariable int bookId) {
List<Book> listBook = createBook();
for(Book book : listBook) {
if(book.getBookId() == 1) {
return book;
}
}
return null;
}
public List<Book> createBook() {
Book book = new Book();
book.setBookId(1);
book.setBookName("book1");
book.setBookPrice("100");
Book book1 = new Book();
book1.setBookId(2);
book1.setBookName("book2");
book1.setBookPrice("200");
List<Book> bookList = new ArrayList<Book>();
bookList.add(book);
bookList.add(book1);
return bookList;
}
}
SpringMain.java
package com.onlinetutorials.tech;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class SpringMain {
public static void main(final String[] args) {
final ConfigurableApplicationContext configurableApplicationContext = SpringApplication
.run(SpringMain.class, args);
}
}
Now hit the URL:
http://localhost:8080:/rest/book/1
@RequestParam example in Spring Boot.
Let’s modify the controller class.
BookController.java
package com.onlinetutorials.tech;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
@RestController
@RequestMapping(value = "/rest")
public class BookController {
@RequestMapping(value = "/listofbooks/{bookId}/book",method = RequestMethod.GET)
public Book getBookById(
@PathVariable int bookId,
@RequestParam String bookName) {
List<Book> listBook = createBook();
for(Book book : listBook) {
System.out.println("bookIs is ---"+bookId);
System.out.println("bookName is ---"+bookName);
if(book.getBookId() == 1 && book.getBookName().equals(bookName)) {
return book;
}
}
return null;
}
public List<Book> createBook() {
Book book = new Book();
book.setBookId(1);
book.setBookName("book1");
book.setBookPrice("100");
Book book1 = new Book();
book1.setBookId(2);
book1.setBookName("book2");
book1.setBookPrice("200");
List<Book> bookList = new ArrayList<Book>();
bookList.add(book);
bookList.add(book1);
return bookList;
}
}
Now hit the URL to see the OutPut:
http://localhost:8080:/rest/listpfbooks/1/book?bookName=book1
Source: Java Algos
Top comments (0)