如何处理Ajax结果(Struts2)

时间:2014-05-15 21:01:07

标签: jquery ajax json jsp struts2

我对Ajax非常陌生,但已经管理了以下代码,但无法理解我如何处理结果以设置到随后处理的ajax响应中。

我有这个,它将选择下拉列表的正确值发送到Action方法:

$('#selectRegionList').on('change', function() {
var request = $.ajax({
url: "/cars/annCreateEdit!updateLocs.jc",
type: "POST",
data: {id: this.value}
});

在操作中正确使用此方法并加载对象列表(对象的一些属性是String name,String description,Long id)

public String updateLocs() throws SQLException {
String regionName = findParamStringValue("id");
if (annoEditParams.getRegionStr() == null) {
addActionError("error.region.id.null");
} else {
Region region = new Region();
region.setName(regionName);
criteria.setRegion(region);
annoEditParams.setRegion(jobsService.loadRegion(criteria));
locations = annoEditParams.getRegion().getLocations();
}

return "jsonResult";

} 我将jsonResult用于映射到的行为:

<result name="jsonResult" type="json">
<param name="root">locations</param>
<param name="location">/WEB-INF/jsp/locs.jsp</param>
</result>

最后调用了正确的结果(我知道因为现有列表(如果我使用常规提交按钮加载一个)正在被清除)

request.done(function(response) {
$('#selectLocationList option').remove();
//what do i do here ? :o(
});
  • 但我不知道我在
  • 旁边要做什么

我要填充的页面部分是struts2选择标记,如下所示:

<s:select
key="label.select.location"
list="annoEditParams.region.locations"
name="annoEditParams.locationStr"
listKey="name"
listValue="description"
multiple="false"
size="1"
value="%{annoEditParams.locationStr}"
disabled="%{annoEditParams.region.locations.size == 0}"
id="selectLocationList"
cssClass="span2"
/>

1:访问包含我已加载列表的正确参数 2:如果我必须设置&#39;该列表在一些特殊对象中用于访问jsp 3:保持理智: - /

非常感谢协助/指导。 谢谢!

1 个答案:

答案 0 :(得分:1)

如果需要,您可以省去在请求变量中保存Ajax并直接在Ajax调用中定义成功回调:

$.ajax({
  url: "/cars/annCreateEdit!updateLocs.jc",
  type: "POST",
  data: {id: this.value},
  success : function(response)
  {
       $('#selectLocationList option').remove();
       $('#selectLocationList').html(response);
  }
});

如果您的回复是HTML代码段,它只是一个选项列表<option value='x'>x</option><option value='y'>y</option>等,您可以将其设置为指定选择标记的innerHTML,如上所述。由于您已选择返回JSON,因此现在必须首先使用找到here (Updating a Drop down list with Jquery from JSON)之类的内容来解析客户端变量response中的JSON。