在JavaScript函数中创建Struts2标记

在JavaScript函数中创建Struts2标记,javascript,struts2,Javascript,Struts2,我想知道是否可以在JavaScript函数内或使用jQuery创建Struts2标记(例如) 例如,我尝试: function createStrutsTag(){ var newElement; newElement= document.createElement("div"); newElement.className = 'newer'; newElement.innerHTML = '<s\:t

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

例如,我尝试:

function createStrutsTag(){           

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

        newElement.css('visibility','visible'); }
函数createStrutsTag(){
var新元素;
newElement=document.createElement(“div”);
newElement.className='newer';
newElement.innerHTML='';
css('visibility','visibility');}
但是,它只是创建了包含标签的div,而没有解析其真正含义


我还尝试了struts2 jquery插件标签(sj),它也崩溃了…所以我想知道是否可以这样做,或者我应该在主体的HTML部分创建这些元素,通过CSS样式隐藏,然后根据应用程序的需要使用JavaScript/jquery函数显示或隐藏它们。

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

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

将文本标记的输出用作JS值

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

  • 将JS放在JSP中,或者
  • 通过JSP处理器评估JS
评估JSP中的一些JS并调用外部JS

例如,您可以在JSP中创建I18N标签等的散列,并将其传递给JS文件中的JS功能(它应该存在的地方)

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

使用JS检索它并按照现在的样子构造DOM

这可以说是最干净的


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

有关基本信息,请参见

JSP:


JS:

函数createDiv(){
var$div=$(“”).html($(“#hello”).html();
$(“#outputHere”).html($div);
}

可以稍微收紧一点,但这是一般的想法。

目前,我只是将JS包含在JSP中。我通过在JSP中创建visibility:hidden的文本标记来实现这一点。然后,在JS函数中,我只是将其可见性设置为visible。然而,这并不是我问题的答案:S,请你提供一个最干净方法的简单例子好吗??谢谢。可以根据JS域中的任何其他变量编辑struts标签的内容吗?或者我可以用固定内容做这个?谢谢你的快速回答和帮助。@aloplop85我不知道你说的“编辑Struts标签的内容”是什么意思。再次说明:在客户端看到响应之前,在服务器上对标记进行评估,因此在客户端可以通过JS+1做任何影响标记本身的事情之前@问题越清楚,答案就越好。。。你可以用Struts2做任何事情,甚至创建你自己的组件,但是一旦页面被处理(在服务器上),任何东西都不允许你从JS(客户端)处理它们。另外,如果你知道服务器是如何处理标签的,你可以更改它的任何属性,不是吗?(例如$($div[0].children[0]).css(“颜色”、“红色”);)