stuts2 框架 和extjs ajax传中文问题

ajdpgm330x1 2009-09-23 03:11:00
我在页面中输入英文是正常的,输入中文返回的json最后少了点东西比较正常返回是
{"success":true}

我传中文进去返回出来就是
{"success":fals
为少一部分东西

我是中我struts2.xml里是
<package name="json" extends="json-default">
<action name="panDuanTDeviceFName" class="com.sxyh.action.panDuanRepeatNameAction" method="panDuanTDeviceFName">
<result type="json">
<param name="includeProperties">success</param>
</result>
</action>

action类方法是
public String panDuanTDeviceFName() {

success=pa.panDuanRepeatName(TDeviceFName);//这是判断TDeviceFName字段是否存在反回一个boolen

return SUCCESS;
}

希望高手能够解决一下问题感激不尽
...全文
199 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
longtenggdf 2009-09-24
  • 打赏
  • 举报
回复
boolean success; 初始化一下试试!
longtenggdf 2009-09-24
  • 打赏
  • 举报
回复
你json 是怎么弄出来的。这样吧:

JSONObject json = new JSONObject();
json.accumulate("success", true);

Struts2Utils.renderJson(json.toString());

ajdpgm330x1 2009-09-24
  • 打赏
  • 举报
回复
我在textfield是输入中文
listeners:{
Ext.Ajax.request({
method : 'POST', //发送方式.'POST'或'GET',一般是'POST'
url: 'panDuanTDeviceFName.action' ,
params : {'TDeviceFName' :Ext.getCmp('FName').getValue()},

success:function(request){ //发送成功的回调函数
alert(request.responseText);
var json = Ext.util.JSON.decode(request.responseText);
}
}

输过去的中文得到是正确的,不是乱码,不过他在stuts2 action中方法
String TDeviceFName;//设备名称
boolean success;
panDuanRepeatNameAjaxDao pa=new panDuanRepeatNameAjaxDao();
public String getTDeviceFName() {
return TDeviceFName;
}
public void setTDeviceFName(String deviceFName) {
TDeviceFName = deviceFName;
}
public String panDuanTDeviceFName() {

success=pa.panDuanRepeatName(TDeviceFName);

return SUCCESS;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}只要一运行这一方法就有问题
而pa.panDuanRepeatName(TDeviceFName)一方法我在控制台打出 是false说明这方法是可执行的,是正确的,没报异常;不过这一方法返回到的json就像我上面说的,最后少了点东西,本来返回的结果是要
{ "success ":false}

可是他确是 这样
{ "success ":fals

谁知道怎么回事呀

sunnyfun888 2009-09-24
  • 打赏
  • 举报
回复
据说是由于编码问题造成的,编码转换成utf-8试试。
ajdpgm330x1 2009-09-24
  • 打赏
  • 举报
回复
success:function(request){ //发送成功的回调函数
alert(request.responseText);
var json = Ext.util.JSON.decode(request.responseText);
}

request.responseText就是返回出来的json 在struts2中他自己会转换成这个json的
他是看action中的字段自己返回出来
比如我action中有
String TDeviceFName;//设备名称
boolean success; 两个字段

json值就为{ "TDeviceFName":"一开始传进来的值","success ":true}


longtenggdf 2009-09-23
  • 打赏
  • 举报
回复
问题不是很清楚~你先看下中文传到后台是否正常,有没乱码~

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧