无法通过 jquery 从控制器到 jsp 获得响应
Cannot get response via jquery from controller to jsp
我正在从下拉菜单(oncgange 函数)向控制器发送一个 id。它工作正常。现在在控制器中从数据库查询结果存储在 arrylist 中。我给了 returntype arrylist。是否可以或有任何错误。请帮忙。我只想显示另一个基于第一个下拉列表的选定值的下拉列表。
假设我选择了水果,所以我想将其填充到 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;
}
现在您必须将 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 = "";
}
我正在从下拉菜单(oncgange 函数)向控制器发送一个 id。它工作正常。现在在控制器中从数据库查询结果存储在 arrylist 中。我给了 returntype arrylist。是否可以或有任何错误。请帮忙。我只想显示另一个基于第一个下拉列表的选定值的下拉列表。 假设我选择了水果,所以我想将其填充到 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;
}
现在您必须将 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 = "";
}