繁体   English   中英

在JavaScript函数中创建Struts2标记

[英]Create Struts2 tag inside JavaScript function

我想知道是否可以在JavaScript函数内部或使用jQuery创建Struts2标记(例如)。

例如,我试过:

function createStrutsTag(){           

        var newElement;
        newElement= document.createElement("div");
        newElement.className = 'newer';
        newElement.innerHTML = '<s\:textfield label="HELLO" \/>';              

        newElement.css('visibility','visible'); }

但是,它只是创建了包含标签<s:textfield label =“HELLO”/>的div而没有被解析为它的真正含义。

我也试过struts2-jquery-plugin标签 (sj)也崩溃了...所以我想知道它是否可以完成或者我应该在身体的HTML部分创建这些元素,被CSS样式隐藏然后使用JavaScript / jquery函数显示或隐藏它们,因为应用程序需要它们。

JS在客户端上执行。 JSP标记在服务器上进行评估。

您有多种选择,不仅限于:

使用text标记的输出作为JS值

至少有两种方法可以做到这一点:

  • 把JS放在JSP中,或者
  • 通过JSP处理器评估您的JS

在JSP中评估一些 JS并调用外部JS

例如,您可以在JSP中创建I18N标签等的哈希值,并将其传递给JS文件中的JS功能(它应该存在的位置)。

将文本标记的输出存储在隐藏的DOM元素中

使用JS检索它并像现在一样构建DOM。

这可以说是最干净的。


使用jQuery粗略概述“干净”解决方案

看看这个小提琴的基础知识。

JSP:

<div id="hello" style="display: none;"><s:text label="HELLO" /></div>

JS:

function createDiv() {
  var $div = $("<div className='newer'>").html($("#hello").html());
  $("#outputHere").html($div);
}

它可能会收紧一点,但这是一般的想法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM