论坛首页 Web前端技术论坛

如何用JavaScript解析Struts标签写的JSP页面?

浏览 12778 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-11-24  
现在我在页面main.jsp左侧设计了一个树,点击树的叶子调用响应的JS方法。

现在我希望在点击某个叶子的时候,页面右侧区域<div id="content"></div>能够出现相应的内容,即用struts标签写的JSP页面strutsdemo.jsp,要显示JSP里面的相关表单,如:
<html:form action="/dicClyj">
<html:text property="strClyj"/><html:errors property="strClyj"/>
<html:submit property="method"><bean:message key="basic.add" /></html:submit><br/>
<html:select property="strClyjSel"/><html:errors property="strClyjSel"/>
<html:submit property="method"><bean:message key="basic.del" /></html:submit><br/>
</html:form>


想到的方法有通过定义iframe,指定iframe.src = strutsdemo.jsp的路径,但使用iframe感觉不是很爽,页面已经显示出来了,IE下面的进度条还在像蜗牛一样慢慢前进。

换种方法:
var content = $("content");
content.innerHTML = struts标签内容


明显HTML无法解析struts标签,content区域没有显示。

想通过ajax来调,但实在想不出什么好的方法,如果是调用html页面非常简单,但如何调用struts标签写的JSP页面的内容?

请大家给点建议~~
   发表时间:2006-11-25  
struts的标签都可以转为标准的html标签的,改一下就行了
0 请登录后投票
   发表时间:2006-11-25  
netfishx 写道
struts的标签都可以转为标准的html标签的,改一下就行了


我曾使用过jsp标签+JSTL+自定义标签+Struts标签来开发页面,但是前三者用js解析还是存在困难,不知道struts标签如何转为标准的html标签?

另外大家在处理这种情况时一般采用什么方法?
0 请登录后投票
   发表时间:2006-11-25  
ajax应用有条很关键特性!

浏览器 服务器 传输的是 数据!
数据,而不是定义格式的标签。
0 请登录后投票
   发表时间:2006-11-25  
zkj_beyond 写道
ajax应用有条很关键特性!

浏览器 服务器 传输的是 数据!
数据,而不是定义格式的标签。

这位兄弟说的很正确。javascript只处理服务器端传输到浏览器端得html结果,请问标准html写的jsp和用struts标签写的jsp最终生成的html有区别吗?显然没有。那为什么搂住可以用javascript处理标准html写的jsp,而不能处理用struts标签写的jsp呢?一样处理就可以了嘛。
0 请登录后投票
   发表时间:2006-11-25  
“content.innerHTML = struts标签内容  “
搂主的这句话有问题
应该是"content.innerHTML = 由服务器端传过来的html文档  " struts标签时属于服务器端的,能写在客户端程序中吗?基本概念模糊啊.
0 请登录后投票
   发表时间:2006-11-25  
dream_flyer_2083 写道
“content.innerHTML = struts标签内容  “
搂主的这句话有问题
应该是"content.innerHTML = 由服务器端传过来的html文档  " struts标签时属于服务器端的,能写在客户端程序中吗?基本概念模糊啊.


因为在这里我不打算用Ajax,仅仅是js脚本事件的响应而已,所以不存在"服务器传过来的html文档"。

我只是想在页面中动态生成struts标签,例如,点击某个按钮按钮或链接的时候,在页面的某个位置显示出对应的Struts标签所解析出来的UI。更详细一点,就是点击第一个链接,旁边出现两个文本输入框,设置用户名和密码,点击第二个链接,出现三个文本框和一个dropdownlist,而这些UI我是用struts标签写的,那么该如何动态调用?
0 请登录后投票
   发表时间:2006-11-25  
zkj_beyond 写道
ajax应用有条很关键特性!

浏览器 服务器 传输的是 数据!
数据,而不是定义格式的标签。


谢谢提醒~

我只是想用js的事件响应来动态生成页面另一区域中的UI,如果生成的是HTML DOM,可以直接用js来写DOM,构成HTML标签,但现在要构造的是struts标签,就不知道该如何处理了。不知道有没有比较好的办法?
0 请登录后投票
   发表时间:2006-11-25  
flyingis 写道
dream_flyer_2083 写道
“content.innerHTML = struts标签内容  “
搂主的这句话有问题
应该是"content.innerHTML = 由服务器端传过来的html文档  " struts标签时属于服务器端的,能写在客户端程序中吗?基本概念模糊啊.


因为在这里我不打算用Ajax,仅仅是js脚本事件的响应而已,所以不存在"服务器传过来的html文档"。

我只是想在页面中动态生成struts标签,例如,点击某个按钮按钮或链接的时候,在页面的某个位置显示出对应的Struts标签所解析出来的UI。更详细一点,就是点击第一个链接,旁边出现两个文本输入框,设置用户名和密码,点击第二个链接,出现三个文本框和一个dropdownlist,而这些UI我是用struts标签写的,那么该如何动态调用?


说的不错,楼主的基本概念模糊啊。说白了,你的innerHTML后面跟struts标签生成的html代码就行了啊
只不过原来在服务器端的struts标签解析工作人工完成而已嘛
0 请登录后投票
   发表时间:2006-11-26  
感谢大家的讨论。

之前做过struts的小型系统,但不少都是知其然,不知其所以然,等需要深入理解的时候自己就忙着毕业,工作后做的是C#/ASP.Net。现在因为项目原因又需要重新拾起struts,毕竟以前"拼凑"过一个相对完整的系统,现在需要做的是改进,再学习,大伙建议让我的思路也清晰不少:)

--

用js脚本可以动态更新页面中某区域的内容,它解析的是html dom,如大家所说,在js运行的时候struts标签已经转换为html,所以不可能在js中传入struts标签,只能传入它所对应的html代码,这个肯定可以。但问题是,这样处理带来三个弊端,一是jsp、jstl、struts等各种标签的功能或便利不能得到发挥,二是在js里写所有的页面对应的html代码显得很笨拙,三是除非使用ajax进行crud操作,否则数据操作的提交流程会比较麻烦。在这种情况下,使用frame思路似乎更清晰,操作更为简单。

希望大伙能继续给予指点!
1 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics