流浪的小柒xqi 2013-09-21 15:45 采纳率: 0%
浏览 1320

sturts2+json+jqeury后台acton获取不了前台jsp传入的值!

xml中我配置了相对应的,前台var param = {};
param={
"checkIds":"1"
};
alert(JSON.stringify(param));
param = JSON.stringify(param);
$.ajax({
type:"POST",
url:"setting_ajax!ajax.action",
dataType:"json",
data:param , // , "checkIds=1"
success:function(data){
alert(data.result);
document.getElementById("resultShow").innerHTML=data.result;
}
});
xml:
<package name="json" namespace="/" extends="json-default">
<action name="setting_ajax" class="syssetAction">
<!--<interceptor-ref name="json" />
--><result name="ajax" type="json">
<param name="result">result</param>
</result>
</action>
</package>

action中也加入了相对应的属性,但是就是没有获取到值,而前台可以获取后台的值!!!

求大神帮助,

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-16 13:31
    关注

    该回答引用ChatGPT

    根据您提供的信息,似乎是在前台使用JSON.stringify方法将param对象转换为JSON字符串后,再将其传递给后台。但是,后台代码可能没有正确地解析JSON字符串,导致无法获取到前台传递的值。


    您可以尝试在后台代码中使用一个JSON解析器来解析传递的JSON字符串,例如使用org.json包,示例代码如下:

    import org.json.JSONObject;
    
    public class SyssetAction extends ActionSupport {
      private String checkIds;
    
      public String ajax() {
        try {
          JSONObject json = new JSONObject(getCheckIds());
          String checkIds = json.getString("checkIds");
          // 在这里处理获取到的值
          return "success";
        } catch (Exception e) {
          e.printStackTrace();
          return "error";
        }
      }
    
      // getter和setter方法
    }
    

    在上面的代码中,我们使用org.json.JSONObject来解析JSON字符串,并从中获取checkIds属性的值。注意,在JSONObject的构造函数中,需要传递一个表示JSON字符串的字符串参数。另外,我们在ajax()方法中处理获取到的值。


    希望这可以帮助您解决问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?