首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在带有Tiles的Struts中获取真正的请求URL?

如何在带有Tiles的Struts中获取真正的请求URL?
EN

Stack Overflow用户
提问于 2008-09-25 08:28:20
回答 4查看 20.6K关注 0票数 13

当你在Struts中使用Tiles的时候...

代码语言:javascript
复制
request.getRequestURL()

...you将URL获取到例如/WEB-INF/jsp/layout/newLayout.jsp,而不是用户输入/点击的真实URL,例如/context/action.do

在较新的Struts1.3.x及以后版本中,您可以使用solution mentioned on javaranch并使用请求属性ORIGINAL_URI_KEY获取实际的URL。

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

EN

回答 4

Stack Overflow用户

发布于 2010-07-21 19:12:01

我使用这个,它也适用于Spring:

代码语言:javascript
复制
<% out.println(request.getAttribute("javax.servlet.forward.request_uri")); %>

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

代码语言:javascript
复制
<% out.println(request.getAttribute("javax.servlet.forward.query_string")); %>
票数 17
EN

Stack Overflow用户

发布于 2010-09-15 02:43:25

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

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

票数 2
EN

Stack Overflow用户

发布于 2008-10-01 11:04:11

这在Struts1.2中有效

代码语言:javascript
复制
private String getOriginalUri(HttpServletRequest request) {
    String targetUrl = request.getServletPath();
    if (request.getQueryString() != null) {
        targetUrl += "?" + request.getQueryString();
    }
    return targetUrl;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/132118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档