论坛首页 Web前端技术论坛

请问XMLHTTP与SITEMESH

浏览 12933 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-01-24  
我通过xmlhttp向后台发出request,servlet使用out.println()返回我所需要的xmldom,这一切都没有问题。

但当我加入sitemesh之后,我无法再接受到我需要的xmldom了。当然,我想这是sitemesh自己的filter中的因为使用了getWriter()而冲掉了我的输出流。

因此我试图通过在decorators.xml中配置exculde的方式来保护我需要进行xmlhttp请求的包,比如 /list/template/*.jsp。

结果这种尝试也失败了。我很困惑,不知道有没有人对于使用xmlhttp的页面进行过sitemesh的修饰?遇到这种输出流被冲掉的问题如何解决?
   发表时间:2005-01-24  
sitemesh,很面生
0 请登录后投票
   发表时间:2005-01-24  
在response output xml之前,先设置content-type为text/xml类型。

在默认设置下,sitemesh只会parse html类型的response:
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.FastPageParser" />

这样就不会有任何问题了。
0 请登录后投票
   发表时间:2005-01-24  
非常感谢楼上的回复,问题解决了,又学到了一点。
0 请登录后投票
   发表时间:2005-01-24  
现在遇到两难了,用到output的页面就无法被修饰,这样必然会打破一贯的风格,除非我把sitemesh修饰页面中的风格照搬一遍到output页面中。

如果我的系统中既想使用sitemesh又想使用xmlhttp,请问有什么好的建议?
0 请登录后投票
   发表时间:2005-01-24  
无法理解你的问题......
0 请登录后投票
   发表时间:2005-01-24  
Readonly 写道
无法理解你的问题......


我的意思挺好理解的.

我最初的问题是想知道如何在sitemesh的环境下正常的显示通过xmlhttp来传递消息的页面.

解决方案是使用text/xml格式绕过sitemesh的filter.但如果绕过去之后,这个页面的风格就无法和整体的风格一致了.

怎么能够既被sitemesh修饰,又不会干扰到页面正常的输出流?
0 请登录后投票
   发表时间:2005-01-24  
如果偶没有理解错的话: 通过xmlhttp 都只是回传一个xml,xml本身就是不需要被sitemesh修饰,用户也不需要看被修饰的xml呀,用户要看的是被修饰的html.
0 请登录后投票
   发表时间:2005-01-24  
Readonly 写道
如果偶没有理解错的话: 通过xmlhttp 都只是回传一个xml,xml本身就是不需要被sitemesh修饰,用户也不需要看被修饰的xml呀,用户要看的是被修饰的html.


向你说声对不起了,这个问题是我搞错了,没有仔细测试就胡乱猜测。。。

我的程序是这样,首先是到一个servlet中,servlet通过RequestDispatcher将request和response交给一个jsp页面,然后由这个jsp发起一个xmlhttp请求,后台处理完毕后返回一个xml到前台。

我一直认为问题出在最后一步,可刚才拆开来测试一下发现,原来导致页面无效的是RequestDispatcher这里,改成response.sendRedirect()就正常了,重定向要经过sitemesh的filter,而转发却能绕过了这一层。

现在又出现了一个奇怪的现象,我sendRedirect到的jsp页面有一个onload方法,它使得前台自动的向后台发起xmlhttp请求。可是在被装饰之后,这个onload方法莫名其妙的不起作用了,去除装饰后立刻正常。。。

使用sitemesh还需要对以前写的js有什么改动?如果要的话,可就不够简单了。。。
0 请登录后投票
   发表时间:2005-01-24  
查看生成的html源代码
在被decorate前后有什么不同
0 请登录后投票
论坛首页 Web前端技术版

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