Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.SpringApplication;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import java.util.*;
- @SpringBootApplication
- @Controller
- public class App {
- @RequestMapping("/")
- public String index(
- Model model,
- @RequestParam(name = "nameSortBy", required = false) String nameSortBy,
- @RequestParam(name = "ageSortBy", required = false) String ageSortBy,
- @RequestParam(name = "name", required = false) String name,
- @RequestParam(name = "age", required = false) String age
- ) {
- List<Person> persons = new ArrayList<>();
- persons.add(new Person("Alice", 15));
- persons.add(new Person("Bob", 10));
- persons.add(new Person("Eve", 5));
- List<Person> filteredPersons = new ArrayList<>();
- for (Person person : persons) {
- if (!isEmpty(name) && !person.getName().equals(name)) {
- continue;
- }
- if (!isEmpty(age) && person.getAge() != Integer.parseInt(age)) {
- continue;
- }
- filteredPersons.add(person);
- }
- Comparator<Person> c;
- c = Comparator.comparing(Person::getName, "desc".equals(nameSortBy) ? Comparator.reverseOrder() : Comparator.naturalOrder());
- c.thenComparing(Person::getAge, "desc".equals(ageSortBy) ? Comparator.reverseOrder() : Comparator.naturalOrder());
- filteredPersons.sort(c);
- model.addAttribute("persons", filteredPersons);
- return "index.html";
- }
- public static void main(String[] args) {
- SpringApplication.run(App.class, args);
- }
- public class Person {
- private String name;
- private int age;
- public Person() {
- }
- public Person(String name, int age) {
- this.name = name;
- this.age = age;
- }
- public String getName() { return name; }
- public void setName(String name) { this.name = name; }
- public int getAge() { return age; }
- public void setAge(int age) { this.age = age; }
- }
- public static boolean isEmpty(String s) {
- return s == null || s.length() == 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement