【问题标题】:Cannot get response via jquery from controller to jsp无法通过 jquery 从控制器到 jsp 获得响应
【发布时间】:2016-06-26 09:54:21
【问题描述】:

我正在从下拉列表(oncgange 函数)向控制器发送一个 ID。它工作正常。现在在控制器中从数据库查询结果存储在 arrylist 中。我已经给出了 returntype arrylist。是否正常或有任何错误。请帮忙。我只想显示另一个基于第一个下拉列表的选定值的下拉列表。 假设我选择了 Fruit ,所以我想在 jsp 中填充它。

<option value="mango">Mango</option>
<option value="pineapple">Pineapple</option>

jsp

         <script>
            function getScode()
            {
                var code = document.getElementById('code'),
                    code = code.value;
                jQuery.ajax({
                    type: 'POST',
                    url: 'scode.htm',
                    data: {
                        code: code
                    },
                    success: function (html) {
                        $('#scode_data').html(html).show();
                    }
                });
                return false;
            }
        </script>

          Select Genre
            <select name="code" id="code"  onchange="getScode();">        
            <option value="1">Fruit</option>
            <option value="2">Game</option>              
            </select>
          Under that
         <div id="scode_data"></div>

控制器

@RequestMapping(value="/scode", method = RequestMethod.POST)
    public @ResponseBody ArrayList getScode(ModelMap modelMap, @RequestParam(value = "code", required = false) String code_val, HttpServletRequest request, HttpServletResponse response) 
throws ClassNotFoundException { 

        SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
        dataSource = new dbconnection.connection().getConnection(dataSource);
        JdbcTemplate jt = new JdbcTemplate(dataSource);

        String sql = "SELECT * FROM cat WHERE fcode='"+code_val+"'";
        srs = jt.queryForRowSet(sql);
        while (srs.next()) {
            pojo obj2 = new pojo();
            obj2.setScode(srs.getString("fcode"));
            obj2.setSname(srs.getString("fname"));
            arraylist.add(obj2);
        }

         return arraylist;
    }

Image link of what i am getting

【问题讨论】:

  • 您将发送 json 版本的数组列表。并在成功函数中解析您收到的 json 并将其附加到另一个
  • 我现在可以通过 ajax 获取数据。但它显示 ... arraylist 数据,如 .... ** model.pojo@14e79b55model.pojo@46162020 **
  • 检查您在浏览器控制台中取得的成功。 success: function (html) { console.log(html); $('#scode_data').html(html).show(); } 你应该得到对象数组。发布那个截图。
  • @SurajRoy 由于您尚未将列表转换为 json,因此您将获得相同的 toString 表示。 stackoverflow.com/questions/20801248/…这对你有帮助
  • @SanjayRawat 不能发截图,分数不够

标签: jquery jsp spring-mvc httpresponse


【解决方案1】:

现在您必须将 json 字符串转换为选项节点。下面的代码可以完成这项工作:

success : function(result) {
    var parsed = JSON.parse(result);

            var b = "";
            for(var x = 0; x<parsed.length ; x++){
                b = "<option value = '"+parsed["scode"]>+"'>"
                b = parsed["sname"] + "</option>";
                $("#__id of your select_").append(b);
                b = "";
            }

【讨论】:

  • 它显示 ,,, UNDEFINED
  • @SurajRoy 应该从您创建的新选择的对象中调用附加函数。
  • i.stack.imgur.com/zL9lF.png ........检查这个图像..我已经测试了这个显示为响应的警报
  • 2 字段应该作为结果.. 警报也显示 2 次,所以我认为数据即将到来,但由于某种原因它未定义
  • 我在想它将如何访问我的数组列表.. 我应该添加一个模型映射并返回模型映射对象
猜你喜欢
  • 2016-11-05
  • 2019-08-13
  • 2016-03-18
  • 2019-04-27
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 2019-05-20
  • 1970-01-01
相关资源
最近更新 更多