日期:2014-05-18  浏览次数:20666 次

Struts中用JavaScript
为什么在JS的函数中输出一个html的标签就可以,而输出一个struts的标签就不行

具体JS代码如下:
function output(){
  document.write("<form><input type=\"submit\"></form>");//调用这个JS函数的时候在页面上输出一个html标签,可以正确运行
}

function output(){
  document.write("<html:form><html:submit value=/"test/"></html:submit></html:form>");
  //调用这个JS函数的时候在页面上输出一个struts标签,不能运行
  //出的错是:quote symbol expected,也就是红色处必须为引号,但是必须得用转义字符啊,而且输出html标签中也是用了转义字符,也没错啊
}



谁能告诉我为什么?
如果我要在JS函数中输出struts标签,该怎么做?

谢谢



------解决方案--------------------
不行
------解决方案--------------------

------解决方案--------------------
不知道啊!
------解决方案--------------------
这个倒真没有试过,一般动态生成都用的是html的标签。
关注。
------解决方案--------------------
学习
------解决方案--------------------
用js输出struts标签是不能被实现,因为js把struts标签做为字符输出
编译却是由IE去实现转换,iE是无法编译struts标签
------解决方案--------------------
value=/"test/" 斜杠用反了
应该是这样的
value=\"test\"
------解决方案--------------------
这个问题很犀利呀,O(∩_∩)O~
------解决方案--------------------
学习..
------解决方案--------------------
引用楼主 SARA520 的帖子:
为什么在JS的函数中输出一个html的标签就可以,而输出一个struts的标签就不行

具体JS代码如下:
function output(){
document.write(" <form> <input type=\"submit\"> </form>");//调用这个JS函数的时候在页面上输出一个html标签,可以正确运行
}

function output(){
document.write(" <html:form> <html:submit value=/"test/"> </html:submit> </html:form>");
//调用这个JS函数的时候在页面上输出一…

------解决方案--------------------
探讨
本想动态生成struts自定义标签
因为struts的自定义标签是用类来写的
类似的标签可以用继承什么的OO思想
现在看来是没办法动态生成了
只能改用html的自定义标签了
若哪个高手有更好的解决办法
不吝赐教啊
谢啦

------解决方案--------------------
关注中.........
------解决方案--------------------
qybao 说得对,支持
------解决方案--------------------
同意QYBAO的观点
你可以在打开的页面中点击右键-->查看源代码;
发现普通STRUTS标签在HTML中都是被转义成SCRIPT和HTML语言以后才被发送到客户端的
直接在客户段是不会编译STRUTS标签的;

IE浏览器 只知道 SCRIPT 和HTML 它完全不认识STRUTS >.<

你可以尝试 先把这些STRUTS标签写到页面上 然后跑一次 访问这个界面 把浏览器编译好的 HTML标签语言拿到
然后把编译好的内容写到你的脚本里去动态添加

也许能达到你要实现的效果
------解决方案--------------------
对啊 ,就是客户端和服务器端的问题。
------解决方案--------------------
谢谢分享
------解决方案--------------------
基本概念的问题,Struts标签是服务器端的代码,而html标签是浏览器端的代码,这个区别不知道却在做Web编程的话算是浑浑噩噩稀里糊涂.
所有jsp,servlet,以及jsp中的标签(tag)其实都是java类,它们的作用是根据一定逻辑生成html代码或数据流输出到客户端浏览器,浏览器再根据规范解析生成界面,html与任何语言(java,.net,php)无关。
javascript是客户端脚本,所以它只能改变html的内容,如果输出一个struts标签会当作陌生的html代码来处理,因为html规范中根本没有这个东西。
------解决方案--------------------