Author: andrei_exadel
Date: 2008-08-18 09:04:38 -0400 (Mon, 18 Aug 2008)
New Revision: 10126
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/request/MultipartRequest.java
trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/BaseFilter.java
Log:
RF-4209
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/request/MultipartRequest.java
===================================================================
---
trunk/framework/impl/src/main/java/org/ajax4jsf/request/MultipartRequest.java 2008-08-18
11:18:31 UTC (rev 10125)
+++
trunk/framework/impl/src/main/java/org/ajax4jsf/request/MultipartRequest.java 2008-08-18
13:04:38 UTC (rev 10126)
@@ -28,6 +28,7 @@
import org.ajax4jsf.exception.FileUploadException;
import org.ajax4jsf.webapp.BaseFilter;
import org.ajax4jsf.webapp.BaseXMLFilter;
+import org.richfaces.model.UploadItem;
/**
* Request wrapper for supporting multipart requests, used for file uploading.
@@ -56,7 +57,7 @@
private Map<String, Object> percentMap = null;
- private Map<Object, Object> attributes = Collections.synchronizedMap(new
HashMap<Object, Object>());
+ private List<String> keys = new ArrayList<String>();
private enum ReadState {
BOUNDARY, HEADERS, DATA
@@ -130,6 +131,7 @@
public FileParam(String name) {
super(name);
+ keys.add(name);
}
public Object getFile() {
@@ -707,6 +709,18 @@
return params;
}
+ public List<UploadItem> getUploadItems () {
+ List <UploadItem> uploadItems = new ArrayList<UploadItem>();
+ for (String k : keys) {
+ uploadItems.add(new UploadItem(getFileName(k), getFileContentType(k), getFile(k)));
+ }
+ return uploadItems;
+ }
+
+ public boolean isFormUpload() {
+ return "_richfaces_form_upload".equals(uid);
+ }
+
@Override
public String getHeader(String name) {
if (!"Accept".equals(name)) {
@@ -720,23 +734,7 @@
shouldStop = true;
}
-
@Override
- public Object getAttribute(String name) {
- Object o = attributes.get(name);
- if (o == null) {
- getRequest().getAttribute(name);
- }
- return o;
- }
-
- @Override
- public void setAttribute(String name, Object o) {
- attributes.put(name, o);
- getRequest().setAttribute(name, o);
- }
-
- @Override
public String getContentType() {
return "application/x-www-form-urlencoded";
}
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/BaseFilter.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/BaseFilter.java 2008-08-18
11:18:31 UTC (rev 10125)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/BaseFilter.java 2008-08-18
13:04:38 UTC (rev 10126)
@@ -337,7 +337,8 @@
sessionsMap.put(uid, multipartRequest);
if (multipartRequest.parseRequest()) {
- handleRequest(multipartRequest, new HttpServletResponseWrapper(response){
+ handleRequest(multipartRequest, multipartRequest.isFormUpload() ? response :
+ new HttpServletResponseWrapper(response){
@Override
public void setContentType(String type) {
super.setContentType(BaseXMLFilter.TEXT_HTML + ";charset=UTF-8");