DontNestJsfInJstlIteration
Since: PMD 3.6
Priority: Medium (3)
Do not nest JSF component custom actions inside a custom action that iterates over its body.
This rule is defined by the following XPath expression:
//Element[ @Name="c:forEach" ] // Element[ @NamespacePrefix="h" or @NamespacePrefix="f" ]
Example(s):
<html>
<body>
<ul>
<c:forEach items='${books}' var='b'>
<li> <h:outputText value='#{b}' /> </li>
</c:forEach>
</ul>
</body>
</html>
Use this rule by referencing it:
<rule ref="category/jsp/bestpractices.xml/DontNestJsfInJstlIteration" />
NoClassAttribute
Since: PMD 3.6
Priority: Medium High (2)
Do not use an attribute called ‘class’. Use “styleclass” for CSS styles.
This rule is defined by the following XPath expression:
//Attribute[ upper-case(@Name)="CLASS" ]
Example(s):
<HTML> <BODY>
<P class="MajorHeading">Some text</P>
</BODY> </HTML>
Use this rule by referencing it:
<rule ref="category/jsp/bestpractices.xml/NoClassAttribute" />
NoHtmlComments
Since: PMD 3.6
Priority: Medium High (2)
In a production system, HTML comments increase the payload between the application server to the client, and serve little other purpose. Consider switching to JSP comments.
This rule is defined by the following XPath expression:
//CommentTag
Example(s):
<HTML><title>bad example><BODY>
<!-- HTML comment -->
</BODY> </HTML>
<HTML><title>good example><BODY>
<%-- JSP comment --%>
</BODY> </HTML>
Use this rule by referencing it:
<rule ref="category/jsp/bestpractices.xml/NoHtmlComments" />
NoJspForward
Since: PMD 3.6
Priority: Medium (3)
Do not do a forward from within a JSP file.
This rule is defined by the following XPath expression:
//Element[ @Name="jsp:forward" ]
Example(s):
<jsp:forward page='UnderConstruction.jsp'/>
Use this rule by referencing it:
<rule ref="category/jsp/bestpractices.xml/NoJspForward" />