找到ECSide在struts2 和webwork2下不好用的原因了
struts2 和 ww2 内部带有一个编码器
ecside的 filter 包含编码功能, 会自动将 ajax请求的编码设置为UTF-8
但是到了 struts2 和 ww2 之后,他俩又把编码改成了普通请求所对应的编码.
解决办法有两个 一个是改struts和ww的配置文件或默认编码,这种做法显然不好.
不应该让应用来迁就ecside
另一个方案是 使得 ecside对ajax请求设置完编码后, struts无法再改变这个编码.
这里可以利用一个小技巧:
在ecside的filter内,执行
request.setCharacterEncoding(encoding);
之后
执行一次 request.getParameter('__');
这样就可以了.
明天我发个新ecside filter, 这样大家就可以把 useAjax设置成 true了.
===============================
对不住各位了, 如果我肯早一点拿出一点点时间来看一下struts2 的东东 也许这个问题早就解决了.
4 楼 fins 2007-11-06 不行啊
因为ajax请求 提交的数据只能是utf-8 这个你可以google一下 9 楼 晕 才发现, 我已经做了类似处理了
ecside不用修改.
只是要把 ecside的 filter 放到 struts2 和 ww2的filter前面
请各位不好用的同学试验一下
要是还不行 那么再短我 谢谢大家了
10 楼 kaki 2012-03-05 现在还感觉很好用,期待更新一个版本。