如何检查使用哪个 ftl 在使用 Struts 构建的 webapp 中呈现页面

Posted

技术标签:

【中文标题】如何检查使用哪个 ftl 在使用 Struts 构建的 webapp 中呈现页面【英文标题】:How to check which ftl is used to render a page in a webapp built with Struts 【发布时间】:2011-07-21 02:01:55 【问题描述】:

我想知道是否有一种简单的方法可以找到当前在网页上使用的 ftl 模板。如何跟踪正在使用哪个 ftl 文件来生成该网页。

我的网络应用是使用 Struts 构建的

谢谢。

【问题讨论】:

我需要更多关于您的情况的背景信息。您的应用程序是使用特定框架(即 Struts)构建的吗? 是的,应用是使用spring和struts构建的 【参考方案1】:

如果您的所有页面中都包含任何通用代码(例如页眉或页脚),您可以临时添加以下代码:

Template: $(stack.findValue("com.opensymphony.xwork2.ActionContext.actionInvocation").result.location)!

然后在网络浏览器中查看页面。

【讨论】:

【参考方案2】:

首先,查看您查看的页面的 URL。它应该类似于“..localhost:8080/your-app/someAction.action”。 .action 后缀不是必需的,但它很常见。它也不必是 .action,它可以是任何东西(即 '.do')。

现在找到你的 struts.xml。这将位于您项目的类路径中。你的 struts.xml 将包含 Action 标签,像这样。

<action name="someAction,action" class="com.your.action.ActionClass">
    <result name="success"type="freemarker">/templates/some.ftl</result>
</action>

页面的url结尾,在这里映射到一个action。查看操作返回的结果,您会找到用于生成响应的 FTL。

根据您提供的信息,这是我能做的最好的事情。请记住,这是一个基本示例,大多数大型应用程序都有自定义方法,例如将 struts.xml 分散到几个不同的文件中,或者使用命名空间将操作分成包。

【讨论】:

以上是关于如何检查使用哪个 ftl 在使用 Struts 构建的 webapp 中呈现页面的主要内容,如果未能解决你的问题,请参考以下文章

Struts2 FTL 标签和地图

struts 集成freemarker 无法定义局部变量

struts2中的freemarker配置

struts 2 Web应用程序中文件的相对路径

如何从 Jive 中的 FTL 为 Java bean 设置值

freemarker 使用jstl标签,我引入了jstl,在ftl中如何使用呢? <@c:set var="ctx" value="XX" /&g