我對Ajax非常陌生,但已經管理了下面的代碼,但無法理解我如何處理結果以便設置到ajax響應中,然後進行處理。如何處理Ajax結果(Struts2)
我有這個,它發送一個選擇下拉菜單的正確值的動作方法:
$('#selectRegionList').on('change', function() {
var request = $.ajax({
url: "/cars/annCreateEdit!updateLocs.jc",
type: "POST",
data: {id: this.value}
});
哪個正確地談到在操作此方法,並加載對象列表(對象的一些attribues是字符串名稱,字符串描述,龍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:如果必須在某些特殊對象中設置該列表以訪問jsp 3:保持我的理智: -/
援助/指導將非常感激。 謝謝!
感謝您的回答 - 我相信我知道您的意思是由額外的jsp來接收html - 但是我需要它進入struts選擇標記(爲了保持「傳統」post和page刷新的功能禁用JS的用戶(用於輔助功能等)) - 我編輯了我的問題以添加s:select我正在使用。 –
@KenAlton無論按鈕的HTML如何生成,選擇按鈕的ID都是選擇按鈕的ID。 –
謝謝你們。我確實是這樣做的 - 將結果作爲字符串返回 - 從數據庫迭代結果並組裝「」;並添加到列表,它的工作原理。我只是假設在jQuery中有一種更優雅的方式。不過,謝謝你們的回答,並且感謝你們讓我從中獲得的額外理解。 –