該類(lèi)處理XML消息生成器的功能。此Java類(lèi)將構建基于identity和description屬性的XML消息。調用方調用了buildXMLMessage之后,它將準備文檔并設置XML消息的根元素。此類(lèi)還具有一個(gè)addNextXMLMessage函數,以將更多驗證消息添加到XML(參見(jiàn)清單1)。
清單1
| ... public void buildXMLMessage() throws ParserConfigurationException { // initiate document builder to prepare the media of XML Message this.rootElement = new Element(CONSTANT_MESSAGE); addNextXMLMessage(); } ... public void addNextXMLMessage() throws ParserConfigurationException { // creating the xml message based on format above Element identityElement = new Element(CONSTANT_IDENTITY); identityElement.setAttribute(CONSTANT_NAME, this.identity); Element descriptionElement = new Element(CONSTANT_DESCRIPTION); descriptionElement.addContent(this.description); identityElement.addContent(descriptionElement); rootElement.addContent(identityElement); } |
此流程方法將響應的內容類(lèi)型設置為“text/xml”,并將XML消息作為字符串發(fā)送。AjaxValidationRequestProcessor代碼上的流程函數如清單2所示。
清單2
| public void process(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { if ( request.getParameter(CONSTANT_VALIDATION_FRAMEWORK_ARG) != null ) { ... this.processValidate(req, resp, form, mapping); response.setContentType(CONSTANT_XML_CONTENT_TYPE); response.getWriter().write(sbXMLMessage.toString()); response.flushBuffer(); } } else { super.process(req, resp); } } |
processValidation方法將填充
動(dòng)作錯誤,并基于面向客戶(hù)端的XML格式契約構建消息。AjaxValidationRequestProcessor代碼上的processValidation函數如下所示:
... ActionErrors errors = (ActionErrors) request.getAttribute(Globals.ERROR_KEY); Locale locale = (Locale) request.getAttribute(Globals.LOCALE_KEY); generateXMLMessage(errors, identity, locale, sbXMLMessage); ... |
聯(lián)系客服