Социальные медиа, такие как URL страницы профиля в Spring Boot - PullRequest
0 голосов
/ 11 мая 2018

В моем весеннем загрузочном веб-приложении есть пользователи. Что я хочу сделать, так это создать частные URL-адреса для каждого профиля, как на большинстве сайтов социальных сетей.

Например;

www.example.com / Jennifer

www.example.com / Дэвид

в php с помощью перенаправления ссылок с файлом .htaccess было решением.

RewriteCond %{QUERY_STRING} ^username=([^&\s]+)$
RewriteRule ^(?:userinfo\.php|)$ /%1? [R=301,L]

RewriteCond %{QUERY_STRING} ^username=([^&\s]+)&username=([^&\s]+)$
RewriteRule ^(?:userinfo\.php|)$ /%1/%2? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\s\/]+)/?$ userinfo.php?username=$1&r [L,QSA]

Как я могу реализовать это в веб-приложении mvc с весенней загрузкой

1 Ответ

0 голосов
/ 12 мая 2018

Есть десятки способов, которыми вы могли бы сделать это, но в верхней части моей головы, вы можете использовать @Controller, ModelAndView и шаблон для работы

@Controller
public class ViewController {

    @GetMapping("/{username}")
    public ModelAndView userPage(@PathVariable String username) {
        User userFromDatabase = someMethodThatGetsYourUserFromTheDatabase(username);
        ModelAndView modelAndView = new ModelAndView("userInfo");
        modelAndView.addObject("user", userFromDatabase);
        return modelAndView;
    }

}

Вышеизложенное подразумевает, что у вас есть представление с именем userInfo (например, такой шаблон, как Thymeleaf или даже JSP).

Используя вышеизложенное, переход к /bob или /potato отобразит представление userInfo, хотя вы можете проверить, существует ли пользователь, прежде чем возвращать представление, и в этом случае вы можете вернуть его на страницу. «Пользователь, которого вы ищете, не существует» .

Возможно, вы захотите прочитать http://www.baeldung.com/spring-mvc-model-model-map-model-view или https://www.mkyong.com/spring-mvc/spring-mvc-and-list-example/ для некоторых основных примеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...