How to add an image to a Component

Last modified by Lachlan Scott on 2007/07/12 19:54

Problem: you want to add an image to the HTML page of a Component; being an highly skilled application developer with the good sense to apply your talents with WebObjects , you expect to do this by using the <img src=" "> tag in the HTML, and are confused as to how to achieve it in WebObjects.

Discussion: WebObjects provides the WOImage tag to manage images in component pages which obviates the 'img' tag, and which can be somewhat unintuitive for the beginning WO developer. The tag supports all the expected HTML img attributes [WOL:as far as I can tell; needs checking] and the 'filename' attribute which references the location of the image to WebObjects. The images themselves must

Question: Yeah, but why can't I just make a static reference in the usual way? Well actually, you can [WOL:link required], but you don't really want to [explanation required: load balancing, web server resources, etc]. The WOImage solution is elegant, and it will provide

Solution:

  1. Create a suitable image directory structure in your project
  2. In  the filesystem, add the image into your chosen directory
  3. Include the folders and image file as WebServerResources
  4. Add a WOImage tag to your page and reference the image in the .wod mapping using the 'filename' attribute


  1. Create a suitable image directory structure in your project
    1. In Eclipse Package Explorer, right-click the project and select  New > Folder (image pending) and name the folder something appropriate such as 'images'
    2. Choose the parent folder, which is the project you're working in (image pending)
    3. Proceed in this way, building the directory structure you want
  2. In  the filesystem, add the image into your chosen directory
    1. [WOL:this seems clunky and there may be a better way of doing it from Eclipse directly]
    2. Eclipse updates the view showing your added image file
  3. Include the folders and image file as WebServerResources
    1. In the Package Explorer, right-click the top folder, and select WOLips Tools > Include as WebServerResource [WOL:image pending]
    2. Notice that your folder structure has been added to the build directory
  4. Add a WOImage tag to your page and reference the image in the .wod mapping using the 'filename' attribute
    1. In the WOLips perspective, open the component to which you wish to add your image, and double-click the .wod file eg. Main.wod; it should open the .HTML and .wod files in WOLips Builder view
    2. Use the WOLips button at the top of the screen to insert a WOImage tag in the .html file and a binding in the .wod file (image pending)
    3. Name the WebObject something appropriate (image pending)
    4. Use code completion (cntrl-space) in the .wod file to display the usual <IMG> attributes (image pending), select  filename
    5. Complete  the filename attribute to match the path to your image, leaving out the leading '/'; in our example, that is

LoginBackground : WOImage {
 filename = "images/backgrounds/loginBackground.gif";
 }


    1. Run your application, with any luck, it should All Just Work™ (image pending)