The easiest way is to simply create some new Velocity templates that provide you an easily parseable (from PHP) representation of the data you need. Then just wrap the client request with a request to the Maverick + Velocity processed pages using alternate Velocity templates for the "view" layer. Since Velocity is just a nifty templating engine, there's nothing that says that you have to output HTML, or XML, or markup for that matter.

The really cool thing is that you can retain the existing user URLs if you want, and simply specify a different view with a request parameter (which a user with a browser would never do) to get to the alternate Velocity template. Then, you're simply adding to the existing system instead of replacing it. Maverick would just have to be configured to dispatch to the alternate views.

For example a Velocity template like this:
---------Start of Velocity Template--------
$!firstName^$!lastName^$!email^$!phone
---------End of Velocity Template--------

     (where the "$" indicates a Velocity variable,
      the "!" indicates not to output anything if the value is null,
      and the values are simply separated with "^" in a single line.
      Velocity docs are at <http://jakarta.apache.org/velocity/>)

...can be processed like this:
<?php
$url = "http://localhost/my/java/url?param=value&view=data";; // ...set the Maverick+Velocity URL to read, with params


    $f = fopen ("$url", "r");
    $data = fread($f, 65536); // Get the result of Java+Velocity output
    fclose($f);

// Now process the results in $data...
$results = explode("^", $data); // assuming variable-length data separated by "^"
$firstName = $results[0];
$lastName = $results[1];
$email = $results[2];
$phone = $results[3];


    // etc...
?>

--doug


On May 25, 2004, at 1:21 PM, Lee McColl wrote:

Hi all,
 
I've recently teamed up with an applications developer to offer my web development skills and am currently picking apart his software.  He currently has a nifty Java based server app which displays information through Maverick and Velocity.  I believe there are lines in his Maverick Web.xml that read -
 
<servlet>
  <servlet-name>velocityViewer</servlet-name>
  <servlet-class>net.nt.frontend.servlets.VelocityViewer</servlet-class>
  <load-on-startup>10</load-on-startup>
 </servlet>
 
It is these lines that I am assuming allow his Java server app to send properties and results to his Velocity pages.
 
Anyway, what I want to do, if it is at all possible, is to change his system so that it sends the information to and through PHP pages.  I'm happy to continue using Maverick if I can, but seeing as the system I built that bolts onto his software uses PHP, I would like to exchange all the .vm pages to also use the same PHP classes.  Make sense?  (I babble).
 
How can I do this?  And if it's not possible with Maverick, what system can I use?
 
I originally thought Ambivalence was made for this, but having read the manual for it, it now seems more like a PHP templating system to seperate PHP code from the presentation, much like Maverick seperates Java from presentation.... But I've already built the PHP templating system using other means.
 
Please please help,
 
Lee




-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149&alloc_id66&op=click
[INVALID FOOTER]

Reply via email to