我想知道是否可以在 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 标记在服务器上进行评估。
您有多种选择,但不限于:
使用文本标签的输出作为JS值
至少有两种方法可以做到这一点:
- 将 JS 放入 JSP 中,或者
- 通过 JSP 处理器评估您的 JS
评估 JSP 中的一些 JS 并调用外部 JS
例如,您可以在 JSP 中创建 I18N 标签等的哈希值,并将其传递给 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);
}
可以稍微收紧一点,但这是总体思路。
关于javascript - 在 JavaScript 函数中创建 Struts2 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16817775/