Script as
<j:forEach var="var" items="a,b">
<j:switch on="${var}">
<j:case value="unencountered1">
<j:set var="res" value="1"/>
</j:case>
<j:case value="unencountered2">
<j:set var="res" value="2"/>
</j:case>
<j:default>
<j:set var="res" value="default"/>
</j:default>
</j:switch>
</j:forEach>
throws "<default> should be the last tag within a <switch>" because of SwitchTag boolean property defaultEncountered is not reset.