データベースに格納されている多数の値の 1 つを表示する単一ページを持つ struts2 アプリケーションがあります。多くの学科があり、各学科には多くのプログラムがある学校への申請です。部門ページには、このような URL を使用してアクセスします
department.action?id=2
DepartmentAction は、表示のために id = 2 の Department をロードします。ユーザーがサイトをブラウジングするだけであれば、これで問題ありませんが、新聞でエンジニアリング部門と言うリンクを提供したい場合は不快になります。リンクは www.myschooldomain.com/department.action?id=2 である必要があります。これには多くの問題があります。
まず、ユーザーフレンドリーではありません。第 2 に、部門が動的に維持され、部門の ID が警告なしに変更され、リンクが不安定になる可能性があるため、破損しやすくなります。
www.myschooldomain.com/department/engineering のような URL を印刷して、何らかの方法で department.action?id=2 に移動させたいと思います。
これまでの私の考え: 最後に部門名の URL を解析し、名前で検索するアクションを作成します。おそらく、各部門のデータベースに Friendlyurl フィールドを追加できます。
しかし問題は、struts2 でこれを行うためのより良い方法はありますか?
ありがとう。
更新 (2009 年 5 月):私はたまたまこの質問に出くわし、それを解決するために何をしたかを言おうと思いました。
私は、struts.xml に departments という新しいパッケージを作成しました。このパッケージには、* にマップされたアクションが 1 つだけあります。したがって、mydomain.com/departments/anything.html へのすべてのリクエストをキャッチします。
アクション クラスでは、単に URL を解析し、departments/ と .html の間の部分を探します。これが部門の名前なので、データベースで検索できます。これは、ほぼ 5 か月間正常に機能しており、サイトの他の領域にも実装しました。