读书人

Struts顶用JavaScript

发布时间: 2011-12-10 22:22:01 作者: rapoo

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规范中根本没有这个东西。
[解决办法]


UP

[解决办法]

探讨
struts的标签在服务器端被解析变成Servelt,
而JS是在客户端执行,客户端没法解析被输出的struts的标签


[解决办法]
刚学,过来学习。。。
[解决办法]
嗯,了解了。
21楼说的挺好的。
[解决办法]
不论是 Struts, JSF 还是 JSTL 都是在 server 端解析成 html 传给浏览器显示的, 浏览器只认识html.
[解决办法]

[解决办法]
js中能执行的应该是编译过的html代码,不能编译struts标签
[解决办法]
我也有幸遇到过这样的问题。不可以动态生成的。楼上的哥们讲的很好了。
考虑用别的放吧。学习一把。
[解决办法]
又学习了支持。。
[解决办法]
正如14楼qybao和7楼jlingang所说;
Struts标签的支持在服务器,解析在服务器,客户端识别HTML,JS是被传输到客户端运行的,你不可能再重写Struts标签了
[解决办法]
楼上好几位 都已经说明答案了
看了我才明悟
javascript 输出到的地方是直接编译成的html 文件中

Js 客户端脚本语言
[解决办法]
大家都讲很好,学习了,楼主明白了吗
[解决办法]
学习!!
[解决办法]
学习到了有用的东西了,呵呵,原来是这样子的

读书人网 >Java Web开发

热点推荐