The jxp distribution contains the following files/directory:
- README - the readme file
- LICENSE - the license file
- /jars - the jxp and its dependencies jar files
- /scripts - simple batch file and shell script for invoking the jxp
processor in the command line to run a script
- /src - jxp source code (if you download the source distribution)
The batch file (jxp.bat) and shell script (jxp.sh*) in the jxp distribution
allow you to test the jxp processor. It will run the simple script in
samples/jxp-scripts to show some of the features of jxp scripts. You can run it by
typing the command:
jxp-1.0.0-beta2$ scripts/jxp.sh samples/jxp-scripts test.jxp
You can refer to the scripts on how the JxpProcessor can be invoked
directly using java interpreter on each platform. Arguably, jxp script can
be used as a type of shell scripts if you like :>.
* you might need dos2unix to fix the shell script for unix system
The following code section shows how to use the JxpProcessor in your program.
//first of all, declare a page source
FilePageSource pageSource = new FilePageSource("/home/joe/jxp");
//then declare a jxp context which encapsulate the processing environment for jxp (including the page source)
//optionally, you can also use JxpContext(JxpPageSource pageSource, Map defaultEnv) which will pass in a default
//environment that is will be available to all the pages you are processing using the context
JxpContext context = new JxpContext(pageSource);
//declare the processor and make it use the context
JxpProcessor processor = new JxpProcessor(context);
//now, you can start process pages
Writer writer = new OutputStreamWriter(System.output);
processor.process("test.jxp", writer); //this will process page "/home/joe/jxp/test.jxp"
writer.flush();
//you can also process another page with some given initial environment (which become variables in your page)
Map env = new HashMap();
env.put("ONE", new Integer(1));
//start processing
processor.process("/test2.jxp", writer, env); //you can refer "ONE" as a variable in your script
To configure the jxp as a web script processor, you need to add the following config in your web.xml (there's a sample web.xml in samples directory)
<servlet>
<servlet-name>jxp-servlet</servlet-name>
<servlet-class>org.onemind.jxp.servlet.JxpServlet</servlet-class>
</servlet>
<!-- The mapping for the webdav servlet -->
<servlet-mapping>
<servlet-name>jxp-servlet</servlet-name>
<url-pattern>*.jxp</url-pattern>
</servlet-mapping>