Your SlideShare is downloading. ×
0
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Intro To Sap Netweaver Java
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Intro To Sap Netweaver Java

2,640

Published on

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,640
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
79
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. JSPs, Resources & Internationalization Leland Bartlett & Lavanya Devarajan
  • 2.  SAP AG 2002, Title of Presentation, Speaker Name 2 WelcomeWelcomeWelcomeWelcome ! Target audience: " Anyone interested in understanding how to integrate Java Server Pages, other resources (HTML, JavaScript and Applets), re-use classes and resources and the basics of internationalization. ! Skills Needed " Familiar with HTML, Java Server Pages " Familiar with Java Programming Concepts
  • 3.  SAP AG 2002, Title of Presentation, Speaker Name 3 Using Java Server Pages Using Resources Internationalization AgendaAgendaAgendaAgenda Re-Using Resources & Classes
  • 4.  SAP AG 2002, Title of Presentation, Speaker Name 4 Using Java Server Pages Using Resources Internationalization Unit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & Internationalization Re-Using Resources & Classes
  • 5.  SAP AG 2002, Title of Presentation, Speaker Name 5 Using Java Server PagesUsing Java Server PagesUsing Java Server PagesUsing Java Server Pages ! JSPs & Java iView runtime ! JSPs & HTMLB ! Methods for JSP integration
  • 6.  SAP AG 2002, Title of Presentation, Speaker Name 6 JSPsJSPsJSPsJSPs & Java iView runtime& Java iView runtime& Java iView runtime& Java iView runtime myjsp.jsp public class _sapportalsjsp_myjsp extends AbstractPortalComponent implements INonCachablePortalComponent { public void doContent(IPortalComponentRequest componentRequest, IPortalComponentResponse aResponse) { HttpServletRequest request = componentRequest.getServletRequest(); JSPResponse response = new JSPResponse(aResponse); JspFactoryImpl factory = new JspFactoryImpl();… The Java iView Runtime(PRT) provides support for Java Server Pages by compiling the JSPs to Portal Components (standard JSPs are compiled to HttpServlets). Compiled JSPs can be found under: %TOMCAT_HOME%webappsirjWEB-INFpluginsportalresources<component name>work Note: In order to compile the generated JSP pages at run-time the PRT needs the tools.jar file of the JDK. By default tools.jar is retrieved with the system property java.home defined by the JDK. If tools.jar is not in the java.home folder the property "jsp.addclasspath" in the file "workplace.properties" can be used to define the location of the tools.jar file. %TOMCAT_HOME%webappsirjWEB-INFpluginsportal systemproperties Compiled to AbstractPortalComponent
  • 7.  SAP AG 2002, Title of Presentation, Speaker Name 7 JSPs & Java iView runtimeJSPs & Java iView runtimeJSPs & Java iView runtimeJSPs & Java iView runtime ImpImpImpImplicit Objects Original Request object.javax.servlet.http.HttpServletRequestrequestrequest out session pageContext response componentRequest JSP iView Object javax.servlet.jsp.JspWriterout Specific Portal implementation. javax.servlet.http.HttpSessionsession Not fully supportedjavax.servlet.jsp.PageContextpageContext The Portal Component Response. com.sapportals.portal.prt.IPortalCom ponentResponse response The Portal Component Request. com.sapportals.portal.prt.IPortalCom ponentRequest --- CommentsClass Similar standard JSP Object Only available on Error Page. Java.lang.Throwableexceptionexception javax.servlet.ServletConfigconfigconfig Directives: page, include supported http://localhost:8080/irj/resources/com.sapportals.pdk.documentation.HowToDevelopMyPortalComponent/docs/JSP_Support.html
  • 8.  SAP AG 2002, Title of Presentation, Speaker Name 8 Using Java Server PagesUsing Java Server PagesUsing Java Server PagesUsing Java Server Pages ! JSPs & Java iView runtime ! JSPs & HTMLB ! Methods for JSP integration
  • 9.  SAP AG 2002, Title of Presentation, Speaker Name 9 JSPs & HTMLBJSPs & HTMLBJSPs & HTMLBJSPs & HTMLB .Java TextView t = new TextView(); t.setText("Hello World!"); JSP: <hbj:textView text="Hello World"/> Wrap components with custom JSP tags !
  • 10.  SAP AG 2002, Title of Presentation, Speaker Name 10 JSPs & HTMLBJSPs & HTMLBJSPs & HTMLBJSPs & HTMLB Important Stuff!!!! The physical location of the HTMLB tag library: " %TOMCAT_HOME% webappsirjserviceshtmlbtaglib Using the Taglib Provided by Portal services All JSP that are compiled into a Portal Component can use tag libraries provided by the PRT services (e.g. HTML-Business for Java (HTMLB)). " The tag library definition file must be referenced in the property file of the Portal Component. $ tagLib.value =/SERVICE/htmlb/taglib/htmlb.tld " Within the JSP file itself the tab library needs to be referenced $ At the beginning of the JSP file that is using the tag library the custom tag library definition property has to be declared: $ <%@ taglib uri="tagLib" prefix="hbj" %> Examples 1. Entries in property file default.properties to use the HTMLB service and tag library: 2. Beginning of JSP file that is using HTMLB tags
  • 11.  SAP AG 2002, Title of Presentation, Speaker Name 11 JSPs & HTMLBJSPs & HTMLBJSPs & HTMLBJSPs & HTMLB <%@taglib uri="tagLib" prefix="hbj" %> <hbj:content id="myContext" > <hbj:page title="Hello World"> <hbj:form> <hbj:textView id="welcome"> <% welcome.setText("Hello World"); %> </hbj:textView> </hbj:form> </hbj:page> </hbj:content> Hello worldHello worldHello worldHello world …………Using JSPsUsing JSPsUsing JSPsUsing JSPs
  • 12.  SAP AG 2002, Title of Presentation, Speaker Name 12 Using Java Server PagesUsing Java Server PagesUsing Java Server PagesUsing Java Server Pages ! JSPs & Java iView runtime ! JSPs & HTMLB ! Methods for JSP integration
  • 13.  SAP AG 2002, Title of Presentation, Speaker Name 13 Methods for JSP integrationMethods for JSP integrationMethods for JSP integrationMethods for JSP integration ! JSPDynpage ! JSPNative
  • 14.  SAP AG 2002, Title of Presentation, Speaker Name 14 JSPDynPageJSPDynPageJSPDynPageJSPDynPage ! JSPDynpage Model ! Usage of Beans ! Example
  • 15.  SAP AG 2002, Title of Presentation, Speaker Name 15 DynPage Extends PageProcessorComponent JSPDynPage ModelJSPDynPage ModelJSPDynPage ModelJSPDynPage Model AbstractPortalComponent implements IPortalComponent Interface public abstract class PageProcessorComponent extends AbstractPortalComponent PageProcessorComponent is the base class for Htmlb component that want to use the DynPage programming model within the Portal Runtime JSPDynPage is a special implementation to enable usage of a DynPage in combination with JSPs in the Portal environment. First step is to define a class that works as loader class - it inherits from the PageProcessorComponent. The created loader class executes the method getPage() and returns a unique value of the JSP DynPage AbstractPortalComponent Implements IPortalComponent Interface PageProcessorComponent Extends AbstractPortalComponent Introducing JSPDynPage Model JSPDynPage Extends DynPage
  • 16.  SAP AG 2002, Title of Presentation, Speaker Name 16 JSPDynpageJSPDynpageJSPDynpageJSPDynpage ModelModelModelModel Request doProcessAfterInput JSPDynPage PageProcessorComponent doInitialization doProcessBeforeOutput
  • 17.  SAP AG 2002, Title of Presentation, Speaker Name 17 JSPDynPageJSPDynPageJSPDynPageJSPDynPage ! JSPDynpage Model ! Usage of Beans ! Example
  • 18.  SAP AG 2002, Title of Presentation, Speaker Name 18 Usage of BeanUsage of BeanUsage of BeanUsage of Bean For complex applications, it is suitable to separate not only the logic from the view, but also the data from the logic. This leads to a Model-View-Controller architecture: JspDynPage (Controller) Data Bean (Model) JSP (View) Request Response
  • 19.  SAP AG 2002, Title of Presentation, Speaker Name 19 Usage of BeanUsage of BeanUsage of BeanUsage of Bean Bean The bean concept - reusable components that can be used in more than one software package - plays an important role in the portal component development. Portal components can use the beans to store and retrieve data. The JSP as well as the servlet (JSPDynPage, AbstractPortalComponent, DynPage, Native servlet) have read and write access to the bean so the bean can be used to transfer data between the JSP and the servlet. Bean %JSPDynPage and JSP data exchange using a Bean %A bean is used to get and set "dynamic" data. The JSPDynPage usually provides the bean with data and the JSP reads the data. The functionality of the basic example is extended by an input field that allows user input. The user input is stored in a bean and than displayed as text by a JSP program. Following steps are necessary %create a bean %initialize the bean %Access the bean in the JSP program (where bean data is required)
  • 20.  SAP AG 2002, Title of Presentation, Speaker Name 20 Usage of BeanUsage of BeanUsage of BeanUsage of Bean In a JSP page, one can access Java Bean objects using the tag <jsp:useBean id="object name" scope="application|session|reque st|page" class="class name" /> where " id is the name of the bean object in the compiled JSP " scope can be $ application -> the bean is stored in the associated component profile object $ session -> the bean is stored in the associated HttpSession or IPortalComponentSession object $ request -> the bean is stored in the associated HttpServletRequest object $ page -> the bean is stored in the associated javax.servlet.jsp.PageContext object " class is the fully qualified classname of the bean
  • 21.  SAP AG 2002, Title of Presentation, Speaker Name 21 JSPDynPageJSPDynPageJSPDynPageJSPDynPage ! JSPDynpage Model ! Usage of Beans ! Example
  • 22.  SAP AG 2002, Title of Presentation, Speaker Name 22 ExampleOneExampleOneExampleOneExampleOne Bean 2) OnSubmit 1) Initial form is displayed 3) Sends info to bean 4) Receives info from bean 5) Renders results
  • 23.  SAP AG 2002, Title of Presentation, Speaker Name 23 ExampleOneExampleOneExampleOneExampleOne Parts processForm.java (extends the JSPDynPage) " Supplies the logic and calls the required JSP file " Handles the Event " Populates the bean with user input Form.jsp " GUI Form for the end user to enter data Result.jsp " Retrieves the data from the bean " Displays the data DynPageNameBean.java " Allows to “Set” and “Get data
  • 24.  SAP AG 2002, Title of Presentation, Speaker Name 24 ExampleOneExampleOneExampleOneExampleOne Form.jsp Result.jsp processForm (Controller) DynPageNameBean
  • 25.  SAP AG 2002, Title of Presentation, Speaker Name 25 Writing the CodeWriting the CodeWriting the CodeWriting the Code Note the location of the JSPs
  • 26.  SAP AG 2002, Title of Presentation, Speaker Name 26 Writing the CodeWriting the CodeWriting the CodeWriting the Code Setting VariablesSetting VariablesSetting VariablesSetting Variables ; Variables defined to evaluate which JSP file to process Variables to store data
  • 27.  SAP AG 2002, Title of Presentation, Speaker Name 27 Writing the CodeWriting the CodeWriting the CodeWriting the Code doInitialization Sets the variable state to the value of INITITAL_STATE: Which had a static value of 0.
  • 28.  SAP AG 2002, Title of Presentation, Speaker Name 28 Writing the CodeWriting the CodeWriting the CodeWriting the Code doProcessBeforeOutput =INITIAL_STATE Default location: privatepagelet
  • 29.  SAP AG 2002, Title of Presentation, Speaker Name 29 Writing the CodeWriting the CodeWriting the CodeWriting the Code Form.JSP FirstName LastName Email
  • 30.  SAP AG 2002, Title of Presentation, Speaker Name 30 Writing the CodeWriting the CodeWriting the CodeWriting the Code HTMLB
  • 31.  SAP AG 2002, Title of Presentation, Speaker Name 31 Writing the CodeWriting the CodeWriting the CodeWriting the Code Button
  • 32.  SAP AG 2002, Title of Presentation, Speaker Name 32 Writing the CodeWriting the CodeWriting the CodeWriting the Code doProcessAfterInput 1 2 3 4
  • 33.  SAP AG 2002, Title of Presentation, Speaker Name 33 Writing the CodeWriting the CodeWriting the CodeWriting the Code doProcessBeforeOutput State=WELCOME_STATE
  • 34.  SAP AG 2002, Title of Presentation, Speaker Name 34 Writing the CodeWriting the CodeWriting the CodeWriting the Code Result.JSP
  • 35.  SAP AG 2002, Title of Presentation, Speaker Name 35 Writing the CodeWriting the CodeWriting the CodeWriting the Code The Bean Sent here after the processForm reads the data inputed by the use and extracted from the input fields. This stores the data until it is requested for either examination or output.
  • 36.  SAP AG 2002, Title of Presentation, Speaker Name 36 Writing the CodeWriting the CodeWriting the CodeWriting the Code Profile
  • 37.  SAP AG 2002, Title of Presentation, Speaker Name 37 ExampleOne Recap
  • 38.  SAP AG 2002, Title of Presentation, Speaker Name 38 Methods for JSP integrationMethods for JSP integrationMethods for JSP integrationMethods for JSP integration ! JSPDynpage ! JSPNative
  • 39.  SAP AG 2002, Title of Presentation, Speaker Name 39 JSPNativeJSPNativeJSPNativeJSPNative Profile ComponentType=jspnative JSP=Name of the JSP File tagLib=/SERVICE/htmlb/taglib/htmlb.tld ServicesReference=htmlb &JSPNative: A Portal Component is simply written as one JSP which is compiled to a Portal Component at runtime. Set the profile property ComponentType to jspnative In the .par file, the JSP should be located under privatejsp (If folder JSP does not exist previously, it needs to be created)
  • 40.  SAP AG 2002, Title of Presentation, Speaker Name 40 Using Java Server Pages Using Resources Unit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & Internationalization Internationalization Re-Using Resources & Classes
  • 41.  SAP AG 2002, Title of Presentation, Speaker Name 41 Using ResourcesUsing ResourcesUsing ResourcesUsing Resources Resources can either be basic resources like applets, scripts, images, static pages or more complex resources like xml files or even java properties files. If you want to use resources in your Portal component, you have to declare in your component where to find the resources with the help of methods from the IResource interface (Portal Runtime API) Here are some supported resource types and their default scopes & extensions : SCRIPT (Public) (.js) STATIC_PAGE (Public) (.html) APPLET (Public) IMAGE (Public) (.gif) JSP (Private) (.jsp) XML (Private) (.xml) PROFILE (Private) (.properties) How to use resources: Fetch the resource from the IPortalComponentRequest interface. This returns an Iresource object. Now you can add it to the response by calling the IPortalComponentResponse.addResource(IResource) method.
  • 42.  SAP AG 2002, Title of Presentation, Speaker Name 42 Using ResourcesUsing ResourcesUsing ResourcesUsing Resources Recommended file structure for Resources: applet* * Indicates that folder names can be custom names Where are they stored when .par file is deployed? Private: %TOMCAT_HOME%webappsirjWEB-INFpluginsportalresources<.par name> Public: %TOMCAT_HOME%webappsirjresources<.par name> … Private Public images* html* scripts* profiles jsp (jspnative approach) pagelet (JspDynpage approach) xml* … Generated Web URL for Public Resources: http://localhost:8080/irj/resources/<par file name> /<Folder Name>/<File name> You can use any folder names for those under the public folder. The Generated web url is purely for your information, you don’t need to know this as you will be using the iresource methods as you will see in the following slides.
  • 43.  SAP AG 2002, Title of Presentation, Speaker Name 43 Using ResourcesUsing ResourcesUsing ResourcesUsing Resources ! Using Images & HTML Pages ! Using JavaScript ! Using Applets ! JSP again!
  • 44.  SAP AG 2002, Title of Presentation, Speaker Name 44 Images: Under the Public folder, place your images (.gif) in any folder. Let us say we have an image under the following location: public images garfield.gif How to access it? IResource garfield = componentrequest.getResource(IResource.IMAGE,"images/garfield.gif"); or IResource garfield = componentrequest.getResource(IResource.IMAGE,"images/garfield"); //since default extension is .gif componentresponse.addResource(garfield); or Image logo; logo=new Image(garfield.getResourceInformation().getURL(req),"Logo"); myForm.addComponent(logo); HTML: Under the Public folder, place your HTML (.html) in any folder. Let us say we have an HTML Page under the following location: public html simple.html Similarly, IResource myhtml= componentrequest.getResource(IResource.STATIC_PAGE,"html/simple.html"); componentresponse.addResource(myhtml); Using Images & HTML PagesUsing Images & HTML PagesUsing Images & HTML PagesUsing Images & HTML Pages
  • 45.  SAP AG 2002, Title of Presentation, Speaker Name 45 Using ResourcesUsing ResourcesUsing ResourcesUsing Resources ! Using Images & HTML Pages ! Using JavaScript ! Using Applets ! JSP again!
  • 46.  SAP AG 2002, Title of Presentation, Speaker Name 46 Using JavaScriptUsing JavaScriptUsing JavaScriptUsing JavaScript Some Methods: 1. Under the Public folder, create a folder say, scripts and place your .js file. 2. Create an HTMLB fragment and add to the class 3. Use <script></script> tags in JSP Let us say we have a .js file named myscript.js containing a function runme() IResource jsResource = componentRequest.getResource(IResource.SCRIPT, "script/myscript.js"); componentresponse.addResource(jsResource); 1. .js file in scripts folder
  • 47.  SAP AG 2002, Title of Presentation, Speaker Name 47 Using JavaScriptUsing JavaScriptUsing JavaScriptUsing JavaScript 2. Create an HTMLFragment element (HTMLB element) String frag= new String(" <SCRIPT language=JavaScript>"); frag = frag + " function runme(siteName,userName,pwd){"; frag = frag+… frag = frag + "}"; frag = frag + "</SCRIPT>"; HTMLFragment hf=new HTMLFragment(frag);//Special container for raw HTML. Note that using this class //might cause Browser dependencies myForm.addComponent(hf); 3. Use <script> tags in JSP <script> function runme(){ … } </script>
  • 48.  SAP AG 2002, Title of Presentation, Speaker Name 48 Using JavaScriptUsing JavaScriptUsing JavaScriptUsing JavaScript If you want to access HTMLB elements via JavaScript, we recommend that you create you HTMLB elements in JSP and use Method 3 How to invoke the JavaScript function? Use htmlb elements that have onclient… methods- Button, Link, Drop Down List box Mybutton.setOnClientClick(“runme()“) or via jsp <hbj:button id=“Mybutton" text="Click!" onClientClick=“runme()"/> Or <script>runme();</script>
  • 49.  SAP AG 2002, Title of Presentation, Speaker Name 49 Using JavaScriptUsing JavaScriptUsing JavaScriptUsing JavaScript How to access HTMLB elements? HTMLB provides access to the HTML IDs that are generated during runtime. After retrieving the IDs, you can generate your JavaScript by setting the correct IDs at runtime. % Declare String variables at the start of the JSP that will hold the HTML IDs of the components you wish to access from JavaScript % Use a method of the HTMLB com.sapportals.htmlb.rendering.PageContext class: pageContext.getParamIdForComponent(com.sapportals.htmlb.Component component). This method returns a String, and this String is the generated ID value for the given component. % Write the script and use this generated ID to identify you HTMLB element % Invoke the script Example: <%String compid="";%> <hbj:inputField id="InputName" type="string" maxlength="100"> <% compid=myContext.getParamIdForComponent(InputName);%> </hbj:inputField> <hbj:button id="button1" text="Type&Click!" onClientClick="runme()"/> Needs to be placed before </hbj:unputField>, to access this inputField component <script> function runme() { var myval=document.getElementById('<%=compid%>').value; alert("You typed: "+myval); } </script>
  • 50.  SAP AG 2002, Title of Presentation, Speaker Name 50 Using ResourcesUsing ResourcesUsing ResourcesUsing Resources ! Using Images & HTML Pages ! Using JavaScript ! Using Applets ! JSP again!
  • 51.  SAP AG 2002, Title of Presentation, Speaker Name 51 Using AppletsUsing AppletsUsing AppletsUsing Applets How to access it? IResource myapplet= req.getResource(IResource.APPLET,"applet/"); String myurl=myapplet.getResourceInformation().getURL(req); componentresponse.write("<applet name="ChompText" archive="ChompText.zip" codebase=""+myurl+"" code="ChompText.class" width=250 height=55>"); componentresponse.write("<param name="text" value="Java Boutique">"); componentresponse.write("<param name="textcolor" value="0000FF">"); componentresponse.write("<param name="bgcolor" value="FFFFFF">"); componentresponse.write("</Applet>"); Under the Public folder, place your applet classes (..jar, .zip) in any folder. Let us say we have an applet ChompText.zip under the following location: public applet ChompText.zip zz
  • 52.  SAP AG 2002, Title of Presentation, Speaker Name 52 Using ResourcesUsing ResourcesUsing ResourcesUsing Resources ! Using Images & HTML Pages ! Using JavaScript ! Using Applets ! JSP again!
  • 53.  SAP AG 2002, Title of Presentation, Speaker Name 53 Under the Private folder, place your JSPs (.jsp) in any folder. Let us say we have a jsp under the following location: private jsp private.jsp How to access it? IResource myjsp= componentrequest.getResource(IResource.JSP,"jsp/private.jsp"); componentrequest.dispatchRequest(myjsp,componentresponse); or componentresponse.addResource(myjsp); Using JSPsUsing JSPsUsing JSPsUsing JSPs Note: JSPs as Web URLS is Not reccommended
  • 54.  SAP AG 2002, Title of Presentation, Speaker Name 54 Using Java Server Pages Using Resources Unit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & Internationalization Internationalization Re-Using Resources & Classes
  • 55.  SAP AG 2002, Title of Presentation, Speaker Name 55 ReReReRe----Using Resources & ClassesUsing Resources & ClassesUsing Resources & ClassesUsing Resources & Classes ! Re-Using Resources ! Re-Using Classes
  • 56.  SAP AG 2002, Title of Presentation, Speaker Name 56 ReReReRe----Using ResourcesUsing ResourcesUsing ResourcesUsing Resources You can reuse the resources from an existing .par file. You need to know the name of the .par file that contains the resources. You can then get the resource from the componentrequest Example: IResource myimage= componentrequest.getResource(“SimpleExample.default",IResource.IMAGE,"images/SAPPortals_opt2.gif"); componentresponse.addResource(myimage);
  • 57.  SAP AG 2002, Title of Presentation, Speaker Name 57 ReReReRe----Using Resources & ClassesUsing Resources & ClassesUsing Resources & ClassesUsing Resources & Classes ! Re-Using Resources ! Re-Using Classes
  • 58.  SAP AG 2002, Title of Presentation, Speaker Name 58 ReReReRe----Using ClassesUsing ClassesUsing ClassesUsing Classes How to re-use existing classes / External Libraries? Method One You have some classes (.jar file) in the lib folder of a .par file (A) that you want to use in another .par file (B) You don't have to package the .jars again in the lib folder. In the default.properties of the .par file (A) containing the .jar files, make the following entry: SharingAccess=shared This determines access to the package using the SharingReference property. In the default.properties of the .par file (B), make the following entry: SharingReference= .par file (A) name This declares references to par file (A). This creates a sharing dependency, which requires that the .par file (A) be uploaded beforehand in the PDK/Portal. For more than one reference, the list of package names must be separated by a comma.
  • 59.  SAP AG 2002, Title of Presentation, Speaker Name 59 ReReReRe----Using ClassesUsing ClassesUsing ClassesUsing Classes Some More Alternatives How to re-use existing classes? Method Two 'Package as a Portal Service (Not in the scope of this class) Method Three 'Include in class-path (Not Reccomended) In the PDK, you can copy the .jar files to <Tomcat_home>libapps. This will be loaded by the Portal runtime. Migration to Enterprise Portal: Upload the .par file and create Java iView based on Master. Make sure you add the External libraries to the Servlet Engine's class-path Tip for SAPJ2EE Engine Copy the .jar files to <SAPJ2EE_Home>aloneadditional-lib. Use the Config tool, Click on "alone" and edit the Java parameters. Example: -classpath".;.system-libboot.jar;.system-libjaas.jar;.additional-libyourexternallib.jar;" This is a good step to follow if you are using any of the libraries in <SAPJ2EE_Home>aloneadditional-lib. Disadvantages: &Extra steps to be performed while migrating to other Enterprise Portals &Classes are visible for all iViews &Version conflicts can occur
  • 60.  SAP AG 2002, Title of Presentation, Speaker Name 60 Using Java Server Pages Using Resources Unit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & InternationalizationUnit: JSPs, Resources & Internationalization Internationalization Re-Using Resources & Classes
  • 61.  SAP AG 2002, Title of Presentation, Speaker Name 61 InternationalizationInternationalizationInternationalizationInternationalization ! Methodology ! Example
  • 62.  SAP AG 2002, Title of Presentation, Speaker Name 62 MethodologyMethodologyMethodologyMethodology Language support for Java iViews is by use of Java resource bundles. The Java iView runtime provides API that allow an iView to communicate with the resource bundle containing the text to display in the iView. Know the ISO88559-1 Country Codes for language wanted to translate " Know the languages Enterprise Portal supported Localization files need to exist under the folder private/classes For each language wanted to translate a localization_xx.properties file needs to be created " German: localization_de.properties " Spanish: localization_es.properties " Default Language: localization.properties If you want to name your translation files something else other than localization_xx.properties, there must be a reference to it in the default.properties file. Example: ExampleOne_de.properties, ExampleOne_es.properties Specify localization file name in default.properties ResourceBundleName=ExampleOne
  • 63.  SAP AG 2002, Title of Presentation, Speaker Name 63 MethodologyMethodologyMethodologyMethodology For Translating Strings Access the language resource in your code <% Import java.util.ResourceBundle; %> <% ResourceBundle res = componentRequest.getResourceBundle();%> <%Send_Button.setText(res.getString(“button.send"));%> Sample Entry in localization_de.properties button.send=Senden For translating Personalization Parameter Names use the Description attribute Any String
  • 64.  SAP AG 2002, Title of Presentation, Speaker Name 64 Language SettingsLanguage SettingsLanguage SettingsLanguage Settings To run the iView in a different language in the PDK, the following needs to be done Locate the file workplace.properties <Tomcat_Home>webappsirjWEB-INFpluginsportalsystemproperties Look for request.mandatorylanguage=en Remove it this entry (or comment #) Now restart tomcat. Change the Language for Internet Explorer (or) " The language has to be one that is supported by the portal Change the user locale in Kmusers.properties Precedence 1. Locale of the PDK (if specified in workplace.properties) 2. Locale of the user (if specified in kMusers.properties) 3. Locale of the client ( [i.e. if set up in (e.g.) IE under Tools/Internet Options/Languages...])
  • 65.  SAP AG 2002, Title of Presentation, Speaker Name 65 Language SettingsLanguage SettingsLanguage SettingsLanguage Settings Forcing a language in PDK • If the desired effect is for the PDK to be displayed in a particular language regardless of browser settings or user setting then the • Workplace.properties • request.mandatorylanguage=ISO Language requirement If the entry in workplace.properties is removed: • Language of Browser • PDK is displayed initially with this language • If language not supported, PDK defaults to English • User Locale • Language changes based on logged on user’s locale in KMusers.properties • If no user locale is specified, then browser language is displayed Example Browser Setting = Spanish (es) User Locale= German (de) Results: " PDK HomePage= Spanish User logs on " PDK = German " IView = German (If no specific localization file exists for german, the iView runs in the default localization)
  • 66.  SAP AG 2002, Title of Presentation, Speaker Name 66 Forcing PDK Mandatory LanguageForcing PDK Mandatory LanguageForcing PDK Mandatory LanguageForcing PDK Mandatory Language To change the mandatory language for the PDK, this needs to be set. Note! It takes precedence If you want the PDK to render content in the language of the browser or the language of the user, the variable described here needs to be commented out Locate the file workplace.properties <Tomcat_Home>webappsirjWEB-INFpluginsportalsystemproperties
  • 67.  SAP AG 2002, Title of Presentation, Speaker Name 67 User LocaleUser LocaleUser LocaleUser Locale <Tomcat_Home>webappsirjWEB-INFpluginsportalservicesusermanagementdata In the kmusers.properties file there is a list of the PDK users
  • 68.  SAP AG 2002, Title of Presentation, Speaker Name 68 Language Setting in IELanguage Setting in IELanguage Setting in IELanguage Setting in IE
  • 69.  SAP AG 2002, Title of Presentation, Speaker Name 69 InternationalizationInternationalizationInternationalizationInternationalization ! Methodology ! Example
  • 70.  SAP AG 2002, Title of Presentation, Speaker Name 70 ExampleExampleExampleExample Internationalize ExampleOne " The languages we will use are Spanish, German, English (default) " We will “Internationalize” the initial form Form.jsp. $ Labels $ Text for the button
  • 71.  SAP AG 2002, Title of Presentation, Speaker Name 71 ExampleOneExampleOneExampleOneExampleOne Form.jsp
  • 72.  SAP AG 2002, Title of Presentation, Speaker Name 72 “Internationalize” Form.jsp:“Internationalize” Form.jsp:“Internationalize” Form.jsp:“Internationalize” Form.jsp: Labels Use label_FirstName.setText(res.getString(“label.firstName”)) But you need to place it before the closing tag of <hbj: label…> This will be the string we will use in the localization file
  • 73.  SAP AG 2002, Title of Presentation, Speaker Name 73 “Internationalize” Form.jsp:“Internationalize” Form.jsp:“Internationalize” Form.jsp:“Internationalize” Form.jsp: Button
  • 74.  SAP AG 2002, Title of Presentation, Speaker Name 74 Localization FilesLocalization FilesLocalization FilesLocalization Files " First we need to create a localization file (for a default language, say English) named localization.properties " Create the localization.properties, localization_xx.properties, under the src folder of project. When you compile/create .par, the localization file will move to the right location under private/classes.
  • 75.  SAP AG 2002, Title of Presentation, Speaker Name 75 Localization FilesLocalization FilesLocalization FilesLocalization Files localization.properties
  • 76.  SAP AG 2002, Title of Presentation, Speaker Name 76 Localization FilesLocalization FilesLocalization FilesLocalization Files In order to access a String in German, Spanish and a default representation (say English), you would have the following structure: label.firstName=Given Name label.lastName=Family Name label.email= Rapid Mail button.send=Fire it off! label.firstName=Vorname label.lastName=Nachname label.email= e-mail Adresse button.send=Senden label.firstName=il primo nome label.lastName=l'ultimo nome label.email= correo electrónico button.send=mande
  • 77.  SAP AG 2002, Title of Presentation, Speaker Name 77 SummarySummarySummarySummary You now know: ! Different methods to Integrate JSPs ! How to use resources such as JavaScripts, HTML & Applets ! How to re-use resources and classes ! How to use Language resource bundles to perform Internationalization
  • 78.  SAP AG 2002, Title of Presentation, Speaker Name 78 " No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. " Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. " Microsoft®, WINDOWS®, NT®, EXCEL®, Word®, PowerPoint® and SQL Server® are registered trademarks of Microsoft Corporation. " IBM®, DB2®, DB2 Universal Database, OS/2®, Parallel Sysplex®, MVS/ESA, AIX®, S/390®, AS/400®, OS/390®, OS/400®, iSeries, pSeries, xSeries, zSeries, z/OS, AFP, Intelligent Miner, WebSphere®, Netfinity®, Tivoli®, Informix and Informix® Dynamic ServerTM are trademarks of IBM Corporation in USA and/or other countries. " ORACLE® is a registered trademark of ORACLE Corporation. " UNIX®, X/Open®, OSF/1®, and Motif® are registered trademarks of the Open Group. " Citrix®, the Citrix logo, ICA®, Program Neighborhood®, MetaFrame®, WinFrame®, VideoFrame®, MultiWin® and other Citrix product names referenced herein are trademarks of Citrix Systems, Inc. " HTML, DHTML, XML, XHTML are trademarks or registered trademarks of W3C®, World Wide Web Consortium, Massachusetts Institute of Technology. " JAVA® is a registered trademark of Sun Microsystems, Inc. " JAVASCRIPT® is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. " MarketSet and Enterprise Buyer are jointly owned trademarks of SAP AG and Commerce One. " SAP, SAP Logo, R/2, R/3, mySAP, mySAP.com and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are trademarks of their respective companies. Copyright 2002 SAP AG. All Rights Reserved

×