|
Hi Has anyone used JSP tag libraries to modify the look and feel of webfacing projects? We are converting our system and need to adhere to the design standards of our company. These standards are implemented through JSP Tag libraries that create a nav bar, field lengths, buttons etc.Basically a lot more than can be done with style sheets because the Tag lib affects individual field elements. Any info, documentation or help on where and how I do this. Do I modify pagebuilder.jsp. What about that WFScreenbuilder jsp - where is that? What about the Record JSPs for each screen. Is that the place to modify? Is there alternate solutions like going through CODE/400. Any help would be great Colm Byrne web400-request@xxxxxxxxxxxx@midrange.com on 12/04/2003 01:00:50 PM Please respond to web400@xxxxxxxxxxxx Sent by: web400-bounces@xxxxxxxxxxxx To: web400@xxxxxxxxxxxx cc: Subject: WEB400 Digest, Vol 1, Issue 637 Send WEB400 mailing list submissions to web400@xxxxxxxxxxxx To subscribe or unsubscribe via the World Wide Web, visit http://lists.midrange.com/mailman/listinfo/web400 or, via email, send a message with subject or body 'help' to web400-request@xxxxxxxxxxxx You can reach the person managing the list at web400-owner@xxxxxxxxxxxx When replying, please edit your Subject line so it is more specific than "Re: Contents of WEB400 digest..." Today's Topics: 1. RE: XML request processing. (Bartell, Aaron L. (TC)) ---------------------------------------------------------------------- message: 1 date: Thu, 4 Dec 2003 08:29:19 -0600 from: "Bartell, Aaron L. (TC)" <ALBartell@xxxxxxxxxxxxxx> subject: RE: [WEB400] XML request processing. I had the same need to bring in large amounts of XML. Here is the sub proc that I developed that can theoretically bring in 16MB. I have tried it with up to 11MB and it worked fine. The basic jist is that it reads it into a user space and then out to a file for your calling program to further process it. I think I have provided you most of the needed supporting sub procs. Let me know if you need any more. . . Just curious, how are you going to parse the XML after you have received it? P CGI_readToFile... P B EXPORT D CGI_readToFile... D PI N D pFileName 256A Value D error DS LikeDS(gAPIError) D bytesRead S 10I 0 D contentLength S 10I 0 D data S 32767A Based(ptr) D rc S 10I 0 D handle S 10I 0 D ptr S * D usrSpc DS Qualified Inz D lib 10A Inz('QTEMP') D name 10A Inz('CGIFN') /Free error.bytesProvided = %Size(error); Monitor; contentLength = CtoN(CGI_getEnvVariable(CONTENT_LENGTH)); On-Error; contentLength = 0; Error_throwError( '400': 'CGI_readToFile: No content was found in request'); EndMon; If contentLength > 0; Monitor; // Create the space needed for the standard input data by making use of // user spaces. UsrSpc_create( usrSpc.lib: usrSpc.name: ' ': contentLength: ' ': '*ALL': ' ': '*YES'); ptr = UsrSpc_retrievePointer(usrSpc.lib: usrSpc.name); qtmhRdStin(data: contentLength: bytesRead: error); If error.msgId <> ' '; Error_throwError('400': 'CGI_readToFile: ' + 'Error read Standard Input: ' + error.msgId + ':' + error.data); EndIf; handle = IFS_openFile(pFileName: 'RW C CP'); If handle < 0; Error_throwError('400': 'CGI_readToFile: ' + 'Unable to obtain a file handle with IFS_openFile.'); EndIf; rc = write(handle: ptr: bytesRead); rc = close(handle); UsrSpc_delete(usrSpc.lib: usrSpc.name); On-Error; Error_throwError( '400': 'CGI_readToFile: Error reading Standard Input'); EndMon; Return *On; EndIf; Return *Off; /End-Free P CGI_readToFile... P E //-------------------------------------------------------------------------- ------------------ // @Name - UsrSpc_retrievePointer // @Description - Retrieve Pointer to OS/400 UserSpace. // @Author - Aaron Bartell // @Usage - pointerToSpace = UsrSpc_retrievePointer(LibraryName: SpaceName) //-------------------------------------------------------------------------- ------------------ P UsrSpc_retrievePointer... P B Export D UsrSpc_retrievePointer... D PI * D pLibName 10A Value D pSpaceName 10A Value D spacePtr S * D qualifiedSpaceName... D S 20A /Free qualifiedSpaceName = pSpaceName + pLibName; qUsPtrUS(qualifiedSpaceName: spacePtr); Return spacePtr; /End-Free P UsrSpc_retrievePointer... P E //-------------------------------------------------------------------------- ------------------ // @Name - UsrSpc_delete // @Description - Delete OS/400 UserSpace. // @Author - Aaron Bartell // @Usage - UsrSpc_delete(LibraryName: SpaceName) //-------------------------------------------------------------------------- ------------------ P UsrSpc_delete B EXPORT D UsrSpc_delete PI D pLibName 10A Value D pSpaceName 10A Value D qualifiedSpaceName... D S 20A /Free qualifiedSpaceName = pSpaceName + pLibName; gAPIError = ' '; qUsDltUS(qualifiedSpaceName: gAPIError); Return; /End-Free P UsrSpc_delete E //-------------------------------------------------------------------------- ------------------ // @Name - // @Author - Aaron Bartell // @Description - // @Usage - //-------------------------------------------------------------------------- ------------------ P IFS_openFile... P B Export D IFS_openFile... D PI 10I 0 D pFile 256A Value D pFlags 15A Value D pCodePage 10I 0 Value Options(*NoPass) D rc S 10I 0 D handle S 10I 0 D IFSMODE C Const(511) D flags S 10I 0 D codePage S 10I 0 /Free If %Parms > 2; codePage = pCodePage; Else; codePage = CP_DOSASCII; EndIf; flags = 0; If %Scan('R': pFlags) > 0; flags = flags + O_RDONLY; EndIf; If %Scan('W': pFlags) > 0; flags = flags + O_WRONLY; EndIf; If %Scan('W': pFlags) > 0 and %Scan('R': pFlags) > 0; flags = O_RDWR; EndIf; If %Scan('A': pFlags) > 0; flags = flags + O_APPEND; EndIf; If %Scan('C': pFlags) > 0; flags = flags + O_CREAT; If %Scan('T': pFlags) > 0; flags = flags + O_TRUNC; EndIf; EndIf; If %Scan('CP': pFlags) > 0; flags = flags + O_CODEPAGE; EndIf; handle = open(%Trim(pFile): flags: IFSMODE: codePage); If handle < 0; Return handle; EndIf; rc = close(handle); // Take the necessary tags back out for the second open If %Scan('C': pFlags) > 0; flags = flags - O_CREAT; If %Scan('T': pFlags) > 0; flags = flags - O_TRUNC; EndIf; EndIf; If %Scan('CP': pFlags) > 0; flags = flags - O_CODEPAGE; EndIf; Return open(%Trim(pFile): flags + O_TEXTDATA: IFSMODE: codePage); /End-Free P IFS_openFile... P E -----Original Message----- From: Kevin Touchette [mailto:KTouchette@xxxxxxxxxxxx] Sent: Wednesday, December 03, 2003 9:54 AM To: web400@xxxxxxxxxxxx Subject: [WEB400] XML request processing. Can anyone tell me how to read an XML request sent from another web site into an rpg cgi program on my web site. I know how to process a query string to get input variables but what I really need to do is read the entire XML document into a variable so that I can parse the XML document into the correct variables. Currently I'm using CGIDEV2 but I'm open to whatever works. TIA. ___________________________________ Washington Corporations Kevin R. Touchette - Programmer/Analyst E-mail: KTouchette@xxxxxxxxxxxx Phone: (406) 523-1369 ___________________________________ _______________________________________________ This is the Web Enabling the AS400 / iSeries (WEB400) mailing list To post a message email: WEB400@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/web400 or email: WEB400-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/web400. ------------------------------ _______________________________________________ This is the Web Enabling the AS400 / iSeries (WEB400) digest list To post a message email: WEB400@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/web400 or email: WEB400-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/web400. End of WEB400 Digest, Vol 1, Issue 637 **************************************
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.