Я проектирую простую инфраструктуру CRUD в Java, где на моей HTML-странице есть динамическая форма (2 с multipart для создания и обновления с загрузкой файлов и 1 без fileupload и multipart для удаления).На стороне сервера модулятор запросов проверяет все параметры, используя request.getParameterMap();
, и проверяет, используя этот скрытый тип ввода <input type="hidden" name="returntype" value="Create">
, является ли это операцией создания, обновления или удаления.Исходя из этого, он будет вызывать необходимые обработчики.
Примечание. Для моего энктипа и кодировки формы установлено значение multipart / form-data Примечание. Мой paramMap.size () возвращает здесь 0и returnType становится нулевым, и поэтому я получаю исключение нулевого указателя.
Если я вообще не использую enctype и кодировку, она работает нормально, но опять же, загрузка моего файла дает мне исключение, что тип кодировки должен быть multipart / form-data .Может ли кто-нибудь помочь мне таким образом, чтобы я мог иметь динамическую форму, с помощью которой я могу создать CRUD?или почему я не могу использовать request.getParameterMap();
с multipart / form-data Спасибо:)
Ниже приведен код модулятора запроса
public String identifyNow()throws ServletException, java.io.IOException
{
UploadXmlAgent uploadAgent;
paramMap=request.getParameterMap();
if (paramMap == null)
throw new ServletException(
"getParameterMap returned null in: " + getClass().getName());
iterator=paramMap.entrySet().iterator();
System.out.println(paramMap.size());
while(iterator.hasNext())
{
Map.Entry me=(Map.Entry)iterator.next();
if(me.getKey().equals("returntype"))
{
String[] arr=(String[])me.getValue();
returnType=arr[0];
}
}
//Identified based on returnType, instantiate appropriate Handler
if(returnType.equals("Create"))
{
uploadAgent=new UploadXmlAgent(realPath,request,paramMap);
uploadAgent.retrieveXml();
//SOME MORE OPERATIONS
return uploadAgent.uploadXml();
}
else if(returnType.equals("Update"))
{
System.out.println("Update");
uploadAgent=new UploadXmlAgent(realPath,request,paramMap);
uploadAgent.retrieveXml();
//SOME MORE OPERATIONS
return uploadAgent.uploadXml();
}
else if(returnType.equals("Delete"))
{
//SOME OPERATIONS
}
return returnType;
}