I have a form that submits to the server. On error: the server has to show the error on the same form.

The following .js file handles form submit:

Code:
function doAdd(){
		 var startIndex=paging.cursor;
		 var aAddInstanceDlg;
         if (!aAddInstanceDlg) {
             aAddInstanceDlg = createNewDialog("a-addInstance-dlg");
			 aAddInstanceDlg.addButton('Reset', resetForm, aAddInstanceDlg);
			 aAddInstanceDlg.addButton('Save', function() {
				 // submit now... all the form information are submit to the server
				 // handle response after that...
                 if (form_instance_create.isValid()) {
                     form_instance_create.submit({  // problem here
                     //  params:{prompt_id : editId, prompt_text: text_edit.getValue(), file: engPrompt_edit.getValue()},
                         params:{prompt_file: engPrompt_tf.getValue()},
                         waitMsg:'Adding new prompt now...',
						 reset: false,
						 failure: function(form_instance_create, action) {
							 //TBD: Ext.MessageBox.alert('Error Message', action.result.errorInfo);
							 //remove following 3 lines
							 //Ext.MessageBox.alert('Confirm', action.result.info);
                             var errorMsg='<% = (String)request.getSession().getAttribute("error")%>';
                             alert('error : '+errorMsg);
                             Ext.MessageBox.alert('Error Message', action.txt);
                             //aAddInstanceDlg.hide();
							 prompt_ds.load({params:{start:startIndex, limit:pagesize}});
						 },
						 success: function(form_instance_create, action) {
							 //Ext.MessageBox.alert('Confirm', action.result.info);
							 aAddInstanceDlg.hide();
							 prompt_ds.load({params:{start: startIndex, limit: pagesize}});
						 }
					 });
				 }else{
					 Ext.MessageBox.alert("<img src='../images/exclamation.gif'> Error!", 'Please fix the errors noted.');
				 }
			 });
			 var layout = aAddInstanceDlg.getLayout();
			 layout.beginUpdate();
			 layout.add('center', new Ext.ContentPanel('a-addInstance-inner', {title: 'Add Prompt'}));
			 layout.endUpdate();
			 aAddInstanceDlg.show();
		 };
	 }
I am not using properly the form.submit's failure part.

Code:
failure: function(form_instance_create, action
On server side I have a Struts action servlet with a method as follows:

Code:
private boolean addPrompt(HttpServletRequest req) {
		System.out
				.println("PromptAction::addPrompt()::Enter. promptlist size before add="
						+ promptList.size());
		System.out.println("PromptAction::addPrompt()::id="
				+ req.getParameter(Prompt.PROMPT_ID) + ", text="
				+ req.getParameter(Prompt.PROMPT_TEXT) + ", file="
				+ req.getParameter(Prompt.PROMPT_FILE));
		Prompt p = new Prompt(req.getParameter(Prompt.PROMPT_ID), req
				.getParameter(Prompt.PROMPT_TEXT), Prompt.PROMPT_CUSTOM);//@@@, req
//@@@				.getParameter(Prompt.PROMPT_FILE));
		promptList.put(req.getParameter(Prompt.PROMPT_ID), p);
		// System.out.println("PromptServlet::addPrompt()::Exit. promptlist size
		// AFTER add="+ promptList.size());
        if (req.getParameter(Prompt.PROMPT_TEXT).length() > 5)  {
            WDTError promptTextError=new WDTError("wdt.107","Prompt Text too long");
			req.setAttribute(WDTConstants.WDT_ERROR, promptTextError);
            System.out.println("PromptAction::Error : " + promptTextError.getMessage());
            logger.error("PromptAction::Error msg=" + promptTextError.getMessage());
            return false;
        }
        else
            return true;
	}// End "addPrompt"
Right now no error msg is displayed inside the form.
What all changes are needed on client and server for displaying some sort of Ext.message.alert() message?

Inputs welcome.