私は音楽ブログを持っており、人々は自分の記事やレビューをブログ エントリとして書くことができ、他のブログ エントリの中に表示されます。
各ブログ エントリには、次のような URL が関連付けられている必要があります。
www.myblog.com/blog/title-of-blog-entry
Struts2 を使用してこれを達成するにはどうすればよいですか? struts.xml ファイルにエントリを動的に追加したり、xml ファイルでワイルドカード マッピングを使用したりできますか?
私は音楽ブログを持っており、人々は自分の記事やレビューをブログ エントリとして書くことができ、他のブログ エントリの中に表示されます。
各ブログ エントリには、次のような URL が関連付けられている必要があります。
www.myblog.com/blog/title-of-blog-entry
Struts2 を使用してこれを達成するにはどうすればよいですか? struts.xml ファイルにエントリを動的に追加したり、xml ファイルでワイルドカード マッピングを使用したりできますか?
最良の方法は、高度なワイルドカード マッピングを使用することです (他のワイルドカードの使用法や、@AleksandrM のコメントによる Struts2 Rest Plugin もありますが、ニーズに最も近いのは AWM です)。
詳細は、この回答 と、それによってリンクされた 2 つの回答(リンクされている公式ドキュメント以外) で読むことができます。
とはいえ、投稿した URL とまったく同じURL には人工キーがなく、記事の名前をキーとして使用していると考えてください。重複したタイトルの処理、特殊文字の変換と保存などを処理する準備ができている必要があります。
StackOverflow URL のようなキーを使用する方が簡単です (エレガントではありませんが)。
例として私のプロフィールを見てみましょう:
https://stackoverflow.com/users/1654265/andrea-ligios
あなたはそれをに変更することができます
https://stackoverflow.com/users/1654265/chuck-norris
それでも私のプロフィールが開きます。重要なのは、記述部分は StackOverflow によって完全に無視されますが、ブラウザのアドレス バーと履歴で名前で検索1654265
できるため重要です(ページのタイトルとまったく同じです) 。
URL やページを開いた日付を思い出すことはできませんが、ページを一度開いた後、その URL に含まれていた単語を 1 つでも覚えていれば、ブラウザーのアドレス バーに移動して、これを入力すると、すぐにページを取得できます (たとえば、「Ligios」と入力すると、ページを取得できます)。
最後の観察:blog
アプリケーションをルート コンテキストにマウントする場合、URL にもその部分を含める必要はありません。次に、次のことができます。
www.myblog.com/title-of-blog-entry
また
www.myblog.com/123456/title-of-blog-entry
人工鍵を使用している場合。