0

我正在一个显示产品列表的网站上工作,每个产品都显示一个类似 facebook 的按钮。在测试过程中,我注意到每次点击点赞按钮时,我的 facebook 墙都没有显示任何关于我的网站或产品图像的信息,所以我认为这与 facebook 的Open Graph 元标记有关。

由于我使用 Spring MVC 和 Apache Tiles 为产品动态创建网页,如何动态插入这些元标记

<meta property="og:title" content="book for sale" />
<meta property="og:type" content="product" />
<meta property="og:url" content="http://www.mysite.com/product/1111" />
<meta property="og:image" content="http://www.mysite.com/pics/230980048.jpg" />
<meta property="og:site_name" content="mysite.com" />
<meta property="fb:admins" content="31536131" />

这是需要在图块模板 ( tiles-definitions) 上完成的事情吗?

一开始我在想,我需要使用HttpServletResponse参数将它们写在弹簧控制器上。

然后我以为有一个jsp标签可以插入meta标签,有点像<jsp:meta>

如您所见,我迷路了,我们将不胜感激。

4

1 回答 1

2

我最终在我的模板上使用了带有表达式语言的 tiles 属性,我有:

<head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=8" />        
        <tiles:insertAttribute name="meta" ignore="true" />
</head>

然后,在我的瓷砖定义文件中,我有

<tiles-definitions>
    <definition extends="default" name="myView">
        <put-attribute name="body" value="/WEB-INF/views/myView.jspx" />
        <put-attribute name="meta" expression="${metaTags}"/>
    </definition>
</tiles-definitions>

最后,在我的 spring web 控制器上,我有:

uiModel.addAttribute("metaTags", createMetaTags(item) );

WherecreateMetaTags动态构建元标记的字符串。

确保您的 classpat n 中有 tiles-el.jar 以使其正常工作。

于 2012-07-22T05:30:33.237 回答