日期:2014-05-16  浏览次数:20287 次

SSH下AJAX 与JSON异步功能的实现
1.首先要导入的包:
commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
json-lib-2.3-jdk15.jar
jsonplugin-0.32这个包支持给予Ajax的支持;但会与Struts核心包冲突 所以我们用struts2-json-plugin-2.1.8.1.jar这个包代替!

2.页面代码示例:
	 var url = "checkPosition.action";   
   		 var params = {"position.pid":$("#positionId").attr("value")};   
       
  		$.getJSON(url,params,function callback(data){ //所要做的页面操
//作
//如果是对象的话还需用// convert to json object   
       // var user = eval("("+data+")");
       //  页面用 user.name取得该对象的name属性!

 });

3.Aciton中的方法
public String checkPosition() throws Exception{
	
	
		Position po = positiondao.queryPositionById(position.getPid());
//		Map map = new HashMap();   //注释掉的为封装对象的方法!我这里
//简单的用String型的信息返回页面!
//        map.put("name", user.getLogName());   
//        map.put("password",user.getPassword());   
//        JSONObject obj = JSONObject.fromObject(map);   
//        result=obj.toString();
           if(po==null){
        	   result="该职务ID可用";//result为String型的成员变量并生成get
                                         //和set方法
           }else {
			
        	   result = "该职务ID不可用"; 
           }

		return SUCCESS;
	}


4.struts配置文件中配置新建一个新的包package必须继承json-default;这里jar包的json-default也是继承struts-default的!
	<package name="json_position" extends="json-default">
		<action name="checkPosition" method="checkPosition" class="positionAction">
			 <result type="json">   
                <param name="root">result</param>   
            </result> 
		</action>
	</package>


写下来作为自己的备忘录吧