2013-05-29 121 views
0

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

举例来说,我想:

function createStrutsTag(){   

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

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

然而,刚刚创建包含标签< S上的格:文本字段标签=“HELLO” />没有被解析到它的真正意义。

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

回答

2

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

您有几种选择,不限于:

使用文本标签的输出作为一个JS值

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

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

评估在JSP一些 JS和调用外部JS

例如,你可以在你的JSP中创建一个国际化标签等的哈希值,并将它传递给生活在一个JS文件JS功能(它在应该住)。

存储文本标签的一个隐藏的DOM元素的输出

检索它使用JS和构建你的DOM你现在的样子。

这可以说是最清洁的。


的使用jQuery

“干净” 解决方案粗略地见this fiddle为基础。

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); 
} 

它可以被拧紧了一点,但这是一般的想法。

+0

目前,我只是将JS包含在JSP中。我通过在JSP内部创建具有可见性的隐藏文本标签来实现它。然后,在JS函数中,我只是将其可见性变为可见。但是,这并不是我的问题的答案:S请,您能否提供最简洁的方法的简单示例?谢谢。 – aloplop85

+0

@ aloplop85更新。 –

+0

可以根据JS域中的任何其他变量来编辑struts标签的内容吗?或者只是我可以用固定内容来做到这一点?感谢您的快速回答和小提琴。 – aloplop85