gpt4 book ai didi

java - 使用 Apache Tiles 3 和 Spring MVC 3.2.3 从 JSP 获取路径

转载 作者:行者123 更新时间:2023-11-30 04:16:05 25 4
gpt4 key购买 nike

我想从 JSP 文件中获取当前所在页面的路径。本例中的 JSP 文件是作为 apachetiles 框架一部分的 Tile。

我访问的 URL 是 http://localhost:8080/dashboard/projects,其中“dashboard”是 servlet,“projects”映射到 Spring Controller ,如下所示:

@RequestMapping( { "/projects" } )
public String showAllProjectsPage( Map< String, Object > model ) {
return "projects";
}

其中“projects”指的是在我的views.xml 中定义的图 block ,如下所示:

<tiles-definitions>
<definition name="template" template="/WEB-INF/views/template.jsp">
<put-attribute name="header" value="/WEB-INF/views/shared/header.jsp" />
<put-attribute name="sidebar" value="/WEB-INF/views/shared/sidebar.jsp" />
<put-attribute name="footer" value="/WEB-INF/views/shared/footer.jsp" />
<put-attribute name="head" value="/WEB-INF/views/shared/head.jsp" />
</definition>
<definition name="home" extends="template">
<put-attribute name="content" value="/WEB-INF/views/home/home.jsp" />
</definition>
<definition name="developer" extends="template">
<put-attribute name="content" value="/WEB-INF/views/developers/developer.jsp"></put-attribute>
</definition>
<definition name="developers" extends="template">
<put-attribute name="content" value="/WEB-INF/views/developers/developers.jsp"></put-attribute>
</definition>
<definition name="project" extends="template">
<put-attribute name="content" value="/WEB-INF/views/projects/project.jsp"></put-attribute>
</definition>
<definition name="projects" extends="template">
<put-attribute name="content" value="/WEB-INF/views/projects/projects.jsp"></put-attribute>
</definition>
</tiles-definitions>

我尝试了以下方法,但它们对我不起作用:

<% out.println(request.getPathInfo(  )); %>

输出:“null

<% out.println(request.getPathTranslated(  )); %>

输出:“null

<% out.println(request.getRequestURI(  )); %>

输出:“/dashboard/WEB-INF/views/template.jsp

<% out.println(request.getRequestURL(  )); %>

输出:“http://localhost:8080/dashboard/WEB-INF/views/template.jsp

<% out.println(request.getServletPath(  )); %>

输出:“/WEB-INF/views/template.jsp

我感兴趣的路径部分是“项目”,我认为方法 request.getPathTranslated() 可以为我做到这一点,但没有骰子。我只能返回“null”,或者返回图 block 模板的路径。

最佳答案

我不确定 getPathTranslated() 应该做什么,但如果它不起作用,您可以将路径添加到 model 作为解决方法吗?

@RequestMapping("/projects")
public String showAllProjectsPage( Map< String, Object > model ) {
model.put("tileDef", "projects");
return "projects";
}

然后在您的 JSP 中像这样访问它:

<span id="tileDef">${tileDef}</span>

关于java - 使用 Apache Tiles 3 和 Spring MVC 3.2.3 从 JSP 获取路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18340631/

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