SolutionsTools & SDKSupport  



Quick Links
 
June 2004
 
 
Jack's Hack for the month of June, 2004:

Introducing WALL

Over the past year we've visited a number of topics related to device diversity, ranging from dealing with UAProf, to WURFL, to Optimizing Images using JMagick. This month we'll take a look at another tool in the arsenal of dealing with device diverstiy, WALL.

WALL is a JSP Tag library which allows you the developer to write a web application once and have optimized content delivered to a variety of devices, in the form of WML, XHTML-MP, or cHTML as appropriate for the phone. WALL leverages the power of, and the information in WURFL, most specifically the preferred_markup device information to decide which language should be delivered to the handset. It takes things one step further by then delivering an optimized version of that markup depending on the capabilities of the handset.

What does all this mean? A single JSP page can be used to delivere optimized content to several different handsets, ranging from the Openwave 4.x browser to the Nokia WML browser to the Openwave 6.x Mobile Browser, to iMode Browsers, to SonyEricsson Browsers to Nokia XHTML browsers.

Before you get overly excited about this possbility, please keep in mind that the content that can be optimized is that which is farily strcutured and straight forward. The tag library is built around the notion of some common constructs that are often used on web pages: menus, list of links, simple forms. If you're planning on delivering an image rich page where you're drawing every pixel on the screen, WALL will not meet your needs.

That warning out of the way, let's take a deeper look into the tag library and what it can do. We're just going to skim the surface here, as all of the gory details can be found at http://wurfl.sourceforge.net/java/wall/index.html along with some hosted sample applications. WALL is still in beta, and since it's an open source project, you can help contribute to its completion and provide the features that you (and your fellow developers) can take advantage of.

Implementing a web application using WALL is very straight forward. Code that looks like the form example below will render in a meangful, optimized, and usable way on a wide variety of handsets (as evidenced by the screen shots)

<%@ taglib uri="/WEB-INF/tld/wall.tld" prefix="wall" %>
<wall:document>
 <wall:xmlpidtd/>
 <wall:head>
   <wall:title>Form 2</wall:title>
 </wall:head>

 <wall:body>
  <wall:form action="url" method="post" enable_wml="true">
   Pin Code:
   <wall:input type="text" name="pincode" value="" format="NNNN" maxlength="4" />
   <wall:br />
   Choose:
   <wall:select title="Day" name="day">
     <wall:option value="11/28/04">Yesterday</wall:option>
     <wall:option value="11/29/04" selected="selected">Today</wall:option>
      <wall:option value="11/30/04">Tomorrow</wall:option>
   </wall:select>
   <wall:br />
   <wall:input type="hidden" name="session" value="gfsa87837" />
   <wall:input type="submit" value="Go" />
  </wall:form>
 </wall:body>
 </wall:document>

Form on XHTML MP Device. Form on WML Browsers from Openwave (UP.Browser 4 family). Form on WML non-Openwave browsers.

Clearly there appears to be some "magic" going on behind the scenes here, but therein lies the beauty of WALL. I can not encourage you enough to visit the WALL site on Source Forge to download WALL, the documentation surrounding it, and the sample code so that you can quickly get up to speed on this powerful multiserving tool. Better yet, after you have spent some time kicking the tires, contribute to the effort or come by and visit us at the Openwave booth at JavaOne in San Francisco June 28-30 2004 to chat about WALL in person.

 

Jack's Archives

 
Copyright © 2000-2008 Openwave Systems Inc.    Openwave  |  Terms & Conditions  |  Privacy Policy