0

我正在尝试将 Struts Tiles 属性插入到 JavaScript 函数中。JS 函数在加载时被调用,并且应该允许某些 JSP 页面向该函数附加额外的代码。

模板如下所示:

<html>
<head>
<script>
  function onLoad(){
    ...
    <tiles:insert attribute="html.head.onLoad" ignore="true" />
    ...
  }
</script>
</head>
</html>

实现这个模板的 JSP 站点是这样的:

<html> 
<head> 
<script>
<tiles:put type="string" name="html.head.onLoad">
        document.getElementById("report").style.height = (getWindowHeight() - 200) + "px";
    </tiles:put>
...
</script>
</head>
</html>

不幸的是,该属性没有插入到 JS 函数中,而是插入到 HTML 头部之外的某个地方。

你知道如何实现我的目标吗?

4

1 回答 1

1

我管理这个只是在“”之间的 JavaScript 代码中插入属性名称。就我而言(例如),我有:

模板(即:filterTemplate.jsp):

<div><a class="btn" id="btn1"><i class="fa fa-filter"></i></a></div>

<div>...</div>

<div id="<tiles:insertAttribute name='myDiv'/>"/>
<script>
    $('#btn1').click(function({
        $('html, body').anímate({
            scrollTop: $("<tiles:insertAttribute name='myDiv'/>").offset().top
        }, 2000);
    });
</script>

在tiles.xml 中:

<definition name="resultTable" template="filterTemplate.jsp">
    <put-attribute name="myDiv" value="" />
</definition>

扩展定义:

<definition name="resultTableA" extends="resultTable">
    <put-attribute name="myDiv" value="#listDogs" />
</definition>
<definition name="resultTableB" extends="resultTable">
    <put-attribute name="myDiv" value="#listCats" />
</definition>

最后,在其他jsp中:

<div class="panel-body collapse">
    <tiles:insertAttribute name="resultTableA"/>
</div>

使用 apache 瓦片 2.0.6

于 2017-11-08T12:25:43.600 回答