4

私のアプリケーションのユーザーが新しいページを作成すると、他の詳細の中で「ページ タイトル」を入力するように求められます。(たとえば、彼女は「Page Title by Megan」と入力しました) アプリケーションはインスタンスを db に保存します。

今私の要件は、誰かがそのページにアクセスしようとすると、URL が次のようになることです。

www.websitename.com/pages/page-title-by-megan

Spring MVC を使用すると、次のようなものを使用して「page-title-by-megan」の部分を簡単に取得できることを理解しています。

@RequestMapping("/pages/{pageTitle}")
public String getPage(@PathVariable String pageTitle, Model model) {
    List<Pages> pages = pageService.getPages(pageTitle);
    model.addAttribute("pages", pages);
    return "pages";
}

しかし、問題は

Q1:関連するページを取得するには、DB に実際のデータと共に pageTitle "page-title-by-megan" を格納する必要がありますか? これを行うための唯一のトリックですか?それとももっと良い方法がありますか?

Q2:それが唯一の方法である場合、"Page Title by Megan" から "page-title-by-megan" のような文字列を効果的に形成するにはどうすればよいですか? 繰り返しますが、より良いアプローチはありますか?

よろしくお願いします。とても感謝しています。

4

1 に答える 1

0

Q1: おっしゃる通り、URL をデータベースに保存するしか方法はないと思いますが、独自の制限があります。

Q2:ユーザーが入力したタイトルが含まれている と仮定するとpageTitle、送信が完了したときにコントローラーでこれを使用します。

String transformedPageTitle = pageTitle.toLowerCase().replace(" ", "-");
于 2012-09-01T10:20:03.253 に答える