structs2注解+jsp+ajax实现post异步加载select

2014-11-23 21:44:07 · 作者: · 浏览: 9

流程:

1.点击加载btn发起异步请求post

2.后台处理请求返回数据

3.前端获取数据成功,对数据进行处理


前端:

html:首先要导入jq包,不然怎么用ajax呢。

<script type="text/java script" src="js/jquery.js">

<script type="text/java script">
$(document).ready(function(){    //这里实现的是: 点击class为add的按钮时加载仓库列表
	$(".add").click(function(){
			$.post("xxxx.do",function(data){      //要异步加载的action,和成功后的回调
				var objs = data.warehouses;     //对应action里的属性
				var selObj = $("#wareId");   
				selObj.empty();
				for (var i in objs) {
					var obj = objs[i];
					addOption(selObj,obj.id,obj.warehouseName); //为Select追加一个Option(下拉项)           
				}
			},"json");	 //返回类型
	 }); 
});
function addOption(selObj,value,text){
	var optionstring = "";
	selObj.append(optionstring); //为Select追加一个Option(下拉项)           
}

后台structs:

使用注解实现,

要注意的是声明类的时候要加注解:@ParentPackage("json-default")

方法声明注解: @Action(value = "xxxx", results = @Result(name = "success", type="json"))

需要跳转页面就把type = "json" 换成 location = "/mobile/auction_detailed.jsp" 要跳转的页面


@ParentPackage("json-default")
public class WarHouseAction extends ActionSupport {
	@Autowired
	private WarehouseService warehouseService;
	
	private List
  
    warehouses;
	
	/**
	 * 后台ajax
	 * @return
	 * 需要跳转页面就把type = "json" 换成  location = "/mobile/auction_detailed.jsp" 要跳转的页面
	 */
	@Action(value = "addGood_before", results = @Result(name = "success", type="json"))  
	public String addGoodBefore(){
		warehouses = warehouseService.findAllEnableWarehouses();   //这个是返回到页面的
		return "success";
	}

	public WarehouseService getWarehouseService() {
		return warehouseService;
	}

	public void setWarehouseService(WarehouseService warehouseService) {
		this.warehouseService = warehouseService;
	}

	public List
   
     getWarehouses() { return warehouses; } public void setWarehouses(List
    
      warehouses) { this.warehouses = warehouses; } }