如何在带有瓷砖的支柱中获取真正的请求URL?

2022-09-04 19:30:16

当您将磁贴与支柱一起使用时,请...

request.getRequestURL()

...你得到的网址,例如 而不是用户输入/单击的真实 URL,类似于 。/WEB-INF/jsp/layout/newLayout.jsp/context/action.do

在较新的Struts版本1.3.x及更高版本中,您可以使用javaranch上提到的解决方案,并使用请求属性ORIGINAL_URI_KEY获取真实URL。

但是如何在Struts 1.2.x中做到这一点呢?


答案 1

我使用这个,它也适用于春季:

<% out.println(request.getAttribute("javax.servlet.forward.request_uri")); %>

如果您还需要查询字符串(由 matchw 提供):

<% out.println(request.getAttribute("javax.servlet.forward.query_string")); %>

答案 2

当您从视图/jsp/切片层查询 request.getRequestURL() 时,它已经是另一个重写的请求。

正如Mwanji Ezana所提到的,最合适的方法是将其保存到操作执行阶段的单独属性中。您可能希望借助 Struts2 中的拦截器自动执行此过程。


推荐