Advanced Customization > Info*Engine User’s Guide > Info*Engine JSP Pages > Authoring Info*Engine JavaServer Pages
  
Authoring Info*Engine JavaServer Pages
JavaServer Pages (JSP) is a core technology of the Java Platform, Enterprise Edition (Java EE) and solutions based upon EJB (Enterprise Java Beans). Info*Engine supports the development of enterprise custom Java applications and provides a JSP processor as an extension of the Info*Engine servlet engine. The JSP processor dynamically translates JSP pages into servlets.
Usually, a JSP page is an HTML page with some additional JSP tags and some embedded Java code. However, inclusion of JSP tags or embedded Java is not mandatory, so a page containing only HTML is a legitimate JSP page.
JSP pages that interact with Info*Engine usually contain a simple set of JSP tags and a set of custom Info*Engine tags that define the webjects that are then executed when the page is accessed. For example, the following DisplayTable.jsp page creates a group containing one element and displays the table-formatted results:
<%@page language="java"  session="false"
  errorPage="IEError.jsp"%>

<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core" prefix="ie" %>

<html>
<head>
<title>JSP Display-Table</title>
</head>

<body bgcolor="#FFFFFF">
<h3> I*E Display-Table JSP Using Taglibs <h3>

<ie:webject name="Create-Group" type="GRP">
  <ie:param name="ELEMENT"
     data="name=myGroup2:email=xxx@xxx.com:address=PTC"/>
  <ie:param name="GROUP_OUT" data="newGroup2"/>
</ie:webject>

<ie:webject name="Display-Table" type="DSP"/>

</body>
</html>
* 
Due to the upgrade to the latest JSP specification, JSPs using Info*Engine substitution syntax can no longer use the ${...} syntax. Info*Engine now supports an alternate syntax, $(...) that must be used instead. All Info*Engine tasks now function with either a syntax of $(...) or ${...}. Preexisting tasks continue to function as is and do not have to be changed. Preexisting JSPs must be updated to use the new $(...) syntax or they fail to compile and do not function as expected.
For more information, see Using the Info*Engine Task Editor.