将 Struts Tiles 属性插入 JavaScript 函数

发布于 2024-09-02 00:23:06 字数 713 浏览 7 评论 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 头部外部的某个位置。

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

I'm trying to insert a Struts Tiles attribute into a JavaScript function. The JS function is called on load and certain JSP pages should be allowed to append additional code to that function.

The template looks like this:

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

And the JSP site that implements this template like this:

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

Unfortunately, the attribute is inserted not into the JS function, but somewhere outside in the HTML head.

Do you know a way how I can achieve my goal?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

彼岸花ソ最美的依靠 2024-09-09 00:23:06

我只需在 JavaScript 代码中的“”之间插入属性 name 即可实现此目的。就我而言(例如),我有:

模板(即: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>

使用apachetiles 2.0.6

I managed this just inserting the attribute name within the JavaScript code between "". In my case (for example), i have:

Template (ie: 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>

In the tiles.xml:

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

Extending the 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>

Finally, in other jsp:

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

Using apache tiles 2.0.6

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文