我想在选择国家之后显示州。
JSP
<s:select label="COUNTRY" name="summaryData.addressCountry" id="addForm_countryCode"
list="loyaltyCountryMap" tabindex="" headerKey="US" headerValue="United States"
listKey="key" listValue="value.countryName"
onchange="getStateList('#addForm_countryCode')">
</s:select>
<s:select label="STATE" name="summaryData.addressCityCode" headerValue="-Select-" headerKey="-Select-" list="stateList" required="true" cssClass="storedPaymentInput_size1 required" id="stateList"/>JAVASCRIPT:
function getStateList() {
var countryCode = $('#addForm_countryCode").val();
$.ajax({
url: 'ajaxStateList',
dataType: 'html',
data: { countryCode : countryCode},
success: function(data) {
$('#stateList').html( data );
}
});
}STRUTS.XML
<action name="ajaxStateList" class="actions.AjaxStateList">
<result name="success"/>
</action>ACTION类
private List<String> stateList;
private String countryCode;
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public List<String> getStateList() {
return stateList;
}
public void setStateList(List<String> stateList) {
this.stateList = stateList;
}
public String execute() {
LoyaltyStateProvinces.getInstance();
stateList = StateProvinces.getAllStateProvinceByCountryCode(countryCode);
for(StateProvince state: states){
stateList.add(state.getStateProvinceCode());
}
return SUCCESS;
}如何使用AJAX+Struts2使其正常工作?
发布于 2012-04-30 16:33:54
参见struts2-json-plugin。让你的操作返回一个json结果类型(通过这个插件)。您的操作类可以在很大程度上保持不变。
一旦你创建并测试了它,你的操作就会返回JSON (只需在浏览器中输入url )。然后你需要一些javaScript。我看到你在使用jQuerys $.ajax方法...我更喜欢$.getJSON,它做同样的事情,但是假设数据是json格式的。
下面是我自己的代码中的一些js:
function punch(){
$.getJSON("<s:url namespace="/timeclock/json" action="punch"/>",
{
badge: $("#input_badge").val()
},
function(data) {
$("#input_badge").val("");
$("#emp_name").text(data.name);
$("#emp_time").text(data.punch);
$("#notification").fadeIn("slow", hide);
});
return false;
}您将注意到三个参数: Fist是调用的url,它总是使用sturts2 url标记构造得最好。第二个是发送给动作的参数,在本例中,"badge“被设置为id为"input_badge”的文本字段中的内容,然后发送到服务器。最后,回调成功后调用的函数,可以看到返回了name、back等参数。
https://stackoverflow.com/questions/10351103
复制相似问题