如何检查使用哪个 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 中呈现页面的主要内容,如果未能解决你的问题,请参考以下文章