史莱姆Slime 2019-05-06 19:50 采纳率: 25%
浏览 382
已结题

在SSH框架中Action接受不到jquery_Ajax的data数据

我的jquery代码是这样的

<script type="text/javascript">
       $(document).ready(
          function(){
              $("#btnSearch").click(function(){
                 var id=$("#sid").val();
                  $.ajax({
                      type:"post",
                      url:"${pageContext.request.contextPath }/staffInfo_QuerySInfo.action",
                      contentType:"application/json;charset=UTF-8",
                      async:false,
                      data:{sid:id},
                      dataType:"json",
                      success:function(json){
                          console.log(json);
                          var i, x="";
                          x = json.dataMap.staffInfo.SId;
                          document.getElementById("content").innerHTML = x;
                      },
                      error:function(){
                          alert("error");
                      }
                  });
              }
              );
          }    
       );
   </script>

表单是这样的

<form class="navbar-form navbar-left" role="search" id="SearchById" >
                        <div class="form-group">
                              <div class="input-group">
                                    <input id="sid" name="sid" type="text" class="form-control" placeholder="输入编号查询"/>
                                    <span class="input-group-btn">
                                        <button id="btnSearch"  class="btn btn-default" >
                                            <span class="glyphicon glyphicon-search"></span>
                                        </button>
                                    </span>
                              </div> 
                        </div>
                    </form>

action的代码如下:

package sshpack.action;

import java.util.HashMap;
import java.util.Map;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

import sshpack.entity.StaffInfo;
import sshpack.service.StaffInfoService;
public class StaffInfoAction extends ActionSupport {

    private StaffInfoService staffInfoService;

    public void setStaffInfoService(StaffInfoService staffInfoService) {
        this.staffInfoService = staffInfoService;
    }

    // 根据编号查询
    private Integer sid;

    public Integer getSid() {
        return sid;
    }

    public void setSid(Integer sid) {
        this.sid = sid;
    }

    private Map<String, Object> dataMap;

    public Map<String, Object> getDataMap() {
        return dataMap;
    }

    public void setDataMap(Map<String, Object> dataMap) {
        this.dataMap = dataMap;
    }

    public String QuerySInfo() {

        String Sid = ServletActionContext.getRequest().getParameter("sid");
        if (Sid != null) {
            sid = Integer.valueOf(Sid);
        }

        StaffInfo staffInfo = staffInfoService.QueryStaffInfoById(sid);
        if (staffInfo != null) {

            dataMap = new HashMap<String, Object>();
            dataMap.put("staffInfo", staffInfo);
            dataMap.put("success", true);
            return "queryResult";
        } else {
            return "error";
        }
    }

Struts为:

<package name="json_data" namespace="/" extends="json-default">
        <action name="staffInfo_*" class="staffInfoAction" method="{1}">
            <result name="queryResult" type="json">
                <param name="root">dataMap</param>
            </result>
        </action>
    </package>

图片说明

我猜是不是这里这句话ServletActionContext.getRequest().getParameter("String")有问题啊,不用这个又要怎么才能接收数据啊

就像这样后台的action得不到数据,sid始终是空的,该怎么解决啊,找了好久都没找到解决办法快崩溃了..............

  • 写回答

2条回答

  • dabocaiqq 2019-05-06 23:57
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条