gpt4 book ai didi

java - 在struts2中创建动态资源的友好url

转载 作者:行者123 更新时间:2023-12-01 19:26:43 24 4
gpt4 key购买 nike

我有一个 struts2 应用程序,它有一个页面,可以显示数据库中存储的多个值之一。该申请适用于一所拥有多个院系的学校,每个院系都有多个项目。使用这样的 url 访问部门页面

department.action?id=2

DepartmentAction 将加载 id = 2 的部门进行显示。如果用户只是浏览网站,这一切都很好,但如果我想提供报纸上工程部门的链接,就会感到不舒服。该链接必须为 www.myschooldomain.com/department.action?id=2。我发现这方面存在很多问题。

首先,它对用户不友好。其次,它很容易被破坏,因为部门是动态维护的,并且部门的 ID 可能会在没有警告的情况下发生变化,从而导致链接不稳定。

我更愿意打印这样的网址:www.myschooldomain.com/department/engineering 并以某种方式将其转到department.action?id=2。

到目前为止我的想法:创建一个操作,该操作将解析末尾部门名称的 url,然后按名称查找。也许我可以为每个部门在数据库中添加一个Friendlyurl 字段。

但问题是:在 struts2 中是否有更好的方法来做到这一点?

谢谢。

更新(2009 年 5 月):我只是偶然发现这个问题,并想我会说一下我是如何解决这个问题的。

我在 struts.xml 中创建了一个名为“departments”的新包。在此包中,只有一个操作映射到 *.因此它捕获对 mydomain.com/departments/anything.html 的所有请求。

在操作类中,我简单地解析 url 并查找 Departments/和 .html 之间的部分,这是部门的名称,这样我就可以在数据库中查找它。近 5 个月以来,该功能一直运行良好,并且我已将其应用于网站的其他区域。

最佳答案

您可以使用URL Rewrite filter

这避免了对任何额外 servlet 或 Java 代码的需要,但需要 XML 描述符。

关于java - 在struts2中创建动态资源的友好url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/226721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com