SWFUpload接受服务器Action返回的参数

首先我们要了解这个函数
function uploadSuccess(file, serverData) {
	try {
		var progress = new FileProgress(file, this.customSettings.progressTarget);
		progress.setComplete();
		progress.setStatus("Complete.");
		progress.toggleCancel(false);

	} catch (ex) {
		this.debug(ex);
	}
}

file为上传的文件对象,我们可以获得,file.id、file.name、file.type、file.size 等信息。

serverData的意思是服务器返回的数据,如果你指定页面,那服务器返回的应该就是这个jsp的数据了,这里最好用type=json的格式

action 代码
//……
//返回页面信息
	   HttpServletResponse response=ServletActionContext.getResponse();
	   response.setContentType("text/html; charset=UTF-8");
        response.setHeader("Cache-Control", "no-cache");
        PrintWriter out = response.getWriter();
        out.write(“action返回的参数”);
        
        out.flush();
        out.close();

	  return SUCCESS;


struts.xml
<package name="upload"[color=red] extends="json-default" [/color]namespace="">
		<action name="upload" class="com.action.FileUploadAction">
			<param name="savePath">/upload</param>
			<result name="success" type="json">/index.jsp</result>
		</action>
</package>


这个配置会出现一个bug(如果你以前没用过json插件的话)

当前使用struts2.23版本,使用了jsonplugin-0.3x.jar报错
引用
java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.TextUtils


解决:
在下载好的Struts2的lib文件夹里找到了以下jar包:
引用
json-lib-2.x.jar

struts2-json-plugin-2.x.x.jar

struts2-junit-plugin-2.x.x.jar


上面三个包加入项目里之后,再删除jsonplugin-0.3x.jar包

你可能感兴趣的:(json,struts2,swfupload,返回参数)