Skip to content
/ jsp-js Public
forked from chanjungkim/jsp-js

a javascript JSP interpreter / renderer

License

Notifications You must be signed in to change notification settings

Onesimu/jsp-js

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSP-JS Build Status

JSP-JS is a Java Server Pages rendering library for nodejs.

To render JSP to HTML, simply remove Java code. Currently supported tags are:

  • <%@include%>
  • <%@taglib tagdir="[path]">
  • <%=..%>
  • ${..}
  • <c:if>
  • <c:else>
  • <c:choose>
  • <c:when>
  • <c:otherwise>
  • <c:forEach>
  • <c:set>
  • <jsp:body>
  • <jsp:doBody>
  • <jsp:attribute>
  • <jsp:invoke>

Tests

Run:

npm run demo

Then open your browser to http://localhost:8080/page/test.jsp.

Usage

Import he renderer like so:

const JSPJs = require('jsp-js').Renderer;

const jsp = new JSPJs(options);
jsp.render('file', data);

The renderer also provides a promise wrapper for easy integration in promise-based code:

jsp.renderPromise('file', data).then((html) => console.log(html));

Constructor options

The following options can be provided to the constructor:

  • root: the root path where templates are
  • tags: a library of custom tags
  • globals: globally available data

Custom tags

Custom tags can be handled by providing them to the constructor options. These are anonymous functions that take the arguments:

  • node the tag node being evaluated
  • index the position of the node in the jsp template. Useful for debugging
  • data the current context data (as an object)
  • renderer the instanciated renderer

A custom tag handler must return a string.

Usage with Express

Please read the code of test/tests.js to have an idea of how to integrate this library with Express.

About

a javascript JSP interpreter / renderer

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%