Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "MoDisco/Components/JSP/Documentation/0.9"

< MoDisco‎ | Components‎ | JSP
(MetaModel Limits)
 
(34 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=JSP Metamodel=
+
#REDIRECT&nbsp;[[MoDisco/Moved To Help Center]]
 
+
The Modisco JSP Metamodel inherits from the Modisco XML one :
+
[[Image:JSP_Metamodel.png]]
+
 
+
 
+
Inheritance was chosen because a JSP page uses the tag mechanism, attributes and comments, and is nearly well formed regarding the XML Metamodel.
+
 
+
==Metamodel Architecture==
+
 
+
According to the "Java Server Pages Specifications Version 1.2", JSP content is divided into 4 categories :
+
*JSP Scripts :
+
**JSP Scriplet : <code>  <% int variable = 0;%> </code>
+
**JSP Expression : <code><nowiki> <%= variable %> </nowiki> </code>
+
**JSP Declaration :<code><nowiki> <%! int variable = 0; %> </nowiki> </code>
+
*JSP Actions : <code><nowiki> <myPrefix:myAction arg1="value" /> </nowiki> </code>
+
**JSP Standard Action : <code><nowiki>  <jsp:getProperty name="beanName" property="propertyNamef" /> </nowiki> </code>
+
*JSP Directive :  <code><nowiki> <%@ include file="myFilePath" %> </nowiki> </code>
+
**JSP TagLib : <code><nowiki> <%@ taglib prefix="myPrefix" uri="taglib/mytag.tld" %> </nowiki> </code>
+
*Comments : code><nowiki>  <%-- This is a JSP comment --%>  </nowiki> </code>
+
 
+
==MetaModel Limits==
+
Because JSP language is used to generated some content, it can be placed almost anywhere in the file, which imply certain limitations:
+
 
+
 
+
This is why the "isTagFragment : EBoolean" attribute was added. In fact, everything contain in a tag declaration as in its body is considered as children. It is indeed necessary to be able to differentiate whether the JSP tag  is used to generate the tag description, or its body.
+
 
+
Some way of implementing JSP might cause some problem with the parser, especially for tag's attributes evaluation. What is expected to be found is some kind of syntax like :
+
 
+
<code> name="value" </code> or <code> name='value' </code>  and even <code> name=value </code>
+
 
+
Sometimes we faced implementations like :
+
<code><nowiki> <tag name=" <% if(condition){ %>  value1" <% }else{ %>  value2" <% } %> > </nowiki> </code>
+
 
+
The parser finds the opening double quote for the attribute's value, then looks for the closing one.
+
 
+
Returned value will be:
+
[[Image:JSP_Metamodel_Limit_1.png]]
+
with an exception raised on the last double quote, because '=' is expected.
+

Latest revision as of 11:48, 2 April 2012

  1. REDIRECT MoDisco/Moved To Help Center

Back to the top