我正在开发一个用户选择要使用的帐户的 web 应用程序,然后他们单击的所有 URL 都引用该帐户。当前活动帐户存储在会话中,但这意味着它不包含在用户书签中,当用户会话超时时它会丢失,并且当用户共享链接时它们不包含相关帐户......
有什么方法可以accountID
在每个 URL 中包含它,而无需手动将其添加到(相当大且仍在增长的)webapp 中的所有 URL 中?
一种方法是将其作为路径的第一部分,因此所有 URL 都类似于:
- /123/discussions/view.do
- /123/account/edit.do
等等,在123
哪里accountID
。
如果所有路径都可以是相对的,那就可以了。但是我还没有想出如何让这种方法与 Struts 命名空间很好地配合使用。
通常,由 Struts2 标签库生成的所有路径都以 开头/
,并且操作通配符匹配也不会在命名空间匹配之后才开始。
如果我能以某种方式在命名空间部分之后获得路径accountID
,我认为我可以使用操作通配符来执行正确的操作,但困难的部分仍然是首先将 ID 放入 URL。
最好的解决方案可能只是制作、 和的自定义版本<s:a>
,但我不确定这有多容易。<s:form>
<s:url>
重要的
有一些答案仅解决如何将这些 URL 映射到Action
s。
这个问题更难的部分实际上是如何accountID
进入所有 URL 并形成路径,而无需手动将其添加到整个应用程序中的每一个。
目前在我看来,唯一的方法是为 URL 和表单制作自定义版本的 Struts JSP 标签。因此,任何有关如何做到这一点的指示都会很有用。