如何在 Java 上为网站创建漂亮的 URL(永久链接)?

发布于 2024-12-07 23:08:39 字数 1019 浏览 1 评论 0原文

我想为我的 Java 网络项目制作漂亮的 URL。

例如,我有如下 URL:

  • www.mysite.com/web/controller?command=showNews&newsId=1
  • www.mysite.com/web/controller?command=showNews&newsId=2
  • www.mysite.com/web /controller?command=showNews&newsId=3

  • www.mysite.com/web/user.do?action=start
  • www.mysite.com/web/user.do?action=showCategory&category=videoGames&section=AboutGames

但它不是那么漂亮和用户友好......

我想建立这样的链接:

  • www.mysite.com/web /2011/10/04/史蒂夫-乔布斯-iPhone-5/
  • www.mysite.com/web/2011/10/23/Facebook-Timeline/
  • www.mysite.com/web/2012/05/25/Vladimir-Putin-Russian-President/

你能帮我吗?我怎样才能得到它?

如果有帮助的话,可以使用任何 Java 框架或库。

谢谢你!

更新:我找到了解决方案 - Spring MVCController@RequestMapping("/Putin") 注释为例。

I would like to make pretty URLs for my web projects on Java.

For example, I have URLs like these:

  • www.mysite.com/web/controller?command=showNews&newsId=1
  • www.mysite.com/web/controller?command=showNews&newsId=2
  • www.mysite.com/web/controller?command=showNews&newsId=3

or

  • www.mysite.com/web/user.do?action=start
  • www.mysite.com/web/user.do?action=showCategory&category=videoGames§ion=AboutGames

But it isn't so pretty and userfriendly...

I want to make links like these:

  • www.mysite.com/web/2011/10/04/Steve-Jobs-iPhone-5/
  • www.mysite.com/web/2011/10/23/Facebook-Timeline/
  • www.mysite.com/web/2012/05/25/Vladimir-Putin-Russian-President/

Сan you help me with this? How can I get it?

It's possible to use any Java frameworks or libs if it's help.

Thank you!

Update: I found solution - Spring MVC with Controller's @RequestMapping("/Putin") annotation for example.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

纸伞微斜 2024-12-14 23:08:39

上下文框架 可以让您做到这一点。例如,您给出的示例可以在视图中像这样映射:

@View(url="regex:/web/<year:\\d{4}>/<month:\\d{2}>/<day:\\d{2}>/<specifier>")
@PageScoped
public class ArticleView extends Component implements ViewComponent {

  @PathParam
  private long year;

  @PathParam
  private long month;

  @PathParam
  private long day;

  @PathParam
  private String specifier;

  @Override
  public void initialize(ViewContext context) {
    System.out.println(year+"/"+month+"/"+day+"/"+specifier);
    // Then do something
  }
}

Context Framework allows you to do just that. For instance the examples you gave could be mapped like this in a view:

@View(url="regex:/web/<year:\\d{4}>/<month:\\d{2}>/<day:\\d{2}>/<specifier>")
@PageScoped
public class ArticleView extends Component implements ViewComponent {

  @PathParam
  private long year;

  @PathParam
  private long month;

  @PathParam
  private long day;

  @PathParam
  private String specifier;

  @Override
  public void initialize(ViewContext context) {
    System.out.println(year+"/"+month+"/"+day+"/"+specifier);
    // Then do something
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文