Unikaj zagnieżdżania cudzysłowów pojedynczych lub podwójnych w znacznikach JSP

Ta reguła oznacza znaczniki JSP, w których cudzysłowy pojedyncze zostały zagnieżdżone w cudzysłowach pojedynczych lub cudzysłowy podwójne zostały zagnieżdżone w cudzysłowach podwójnych.

Przykład 1:
<c:if test="<%=(link.indexOf(':') == -1)%>" >

W tym przykładzie atrybut test zawiera sekwencję znaków ':', która jest zagnieżdżona w zewnętrznych cudzysłowach pojedynczych '<%=(link.indexOf(':') == -1)%>'. Ta reguła oznaczyłaby ten przykład.

Szybka poprawka dla tej reguły jest dostępna w skanerze źródła. Szybka poprawka zmienia znaczenie zagnieżdżonych cudzysłowów. W przypadku tego przykładu zmienione zostałoby znaczenie cudzysłowów otaczających sekwencję znaków ':'.

Przykład 1 po zastosowaniu szybkiej poprawki:
<c:if test="<%=(link.indexOf(\':\') == -1)%>" >

Obecność zagnieżdżonych cudzysłowów w znaczniku JSP może spowodować wyświetlenie komunikatu o błędzie podobnego do następującego przykładu:

Komunikat o błędzie: JSPG0048E: Nie powiodła się operacja sprawdzania poprawności strony przy użyciu analizatora poprawności taglib dla elementu... : org.xml.sax.SAXParseException: Po nazwie atrybutu "jsp:id" powiązanej z typem elementu "c:if" musi występować znak " = ".
Podstawowa przyczyna: com.ibm.ws.jsp.translator.JspTranslationException: JSPG0048E: Nie powiodła się operacja sprawdzania poprawności strony przy użyciu analizatora poprawności taglib dla elementu...

Dodatkowe informacje na ten temat: