liferay中对struts桥接处理后的response
对于在liferay开发平台中应用struts框架,前段时间简单介绍了一下;这里说一下在liferay中struts框架的response相关问题。
?
前段时间参考了不少liferay中使用struts的资料,在liferay的论坛中也有人建议使用jsp或者servlet来处理ajax的请求;我也试过在struts的Action中处理后用response写字符串的形式给客户端反馈数据,但是客户端获得的是整个页面的html源代码,开始的时候,如果在Action中设置了页面跳转,再跳回原来页面的话,客户端得到的就是整个页面的代码,当方法中返回一个空页面跳转的话,客户端得到的是你反馈的数据。我认为使用了liferay对struts的桥接处理,进行页面跳转以后liferay还对response进行了处理,把你想反馈回客户端的数据一并返回了。同样的问题也出现在我使用liferay对struts的桥接处理方法中的文件下载的应用中,各种参数都设置的正确,但是客户端获得的不是一个文件,而是liferay在页面中以文本形式给你打开了这个文件;这再次证明页面跳转以后liferay对response的输出方法进行了修改。
?
原来以为使用liferay对struts桥接处理后,使用struts会更加方便,现在我不这样认为了;有些原本独立使用struts时的应用方式很简单,但是放到liferay的桥接action下时用起来有点绕弯路。今天试了一下,不使用liferay对struts的桥接处理,独立使用struts也是可以的,也就是现在的Action不继承com.liferay.portal.struts.PortletAction类,而是仍旧直接继承org.apache.struts.action.Action。看看PortletAction的源码,它里面也是继承org.apache.struts.action.Action,结合自身的一些需要重写了很多方法,可是这些方法好用么?在框架配置方面,配置文件和以前也是一样的。
?
个人认为我这是受了liferay培训人员的误导,一直在liferay对struts的桥接处理下摸索,才会收效甚微。当然这也只是我自己的看法,没有贬义。
?
如有问题,欢迎回复讨论。
?
?
我也是遇到这个问题,我用ajax方式response write一个字符串到页面的时候,不但没有接收到我传出来的值,而且把success的页面也返回了回来。好恼火啊!这是我写的