StatsQuery

VRaptor já vem com um componente padrão que disponibiliza informações úteis sobre a configuração dele mesmo.

Registrando StatsQuery

Só adiciona o componente no arquivo vraptor.xml:

        <component>org.vraptor.util.StatsQuery</component>

A lógica se chama StatsQuery.read.logic.

Existe um exemplo StatsQuery/read.ok.jsp na aplicação mydvd que você pode baixar.

O exemplo listado aqui ajuda o iniciante (e o avançado) programar:

<div id="blue-box" style="width: 700px;">

This feature is here only for demonstration. You should turn it off while live.<br/>
<br/>

<table style="width: 100%; border-style: solid; border-width: 1pt; border: solid 1pt; border-collapse: collapse;">
<tr>
        <td>Name</td>
        <td>Component class</td>
        <td>Interceptors</td>
        <td>Parameter</td>
        <td>Logics</td>
</tr>
<c:forEach var="component" items="${components}">
<tr>
        <td>${component.name}</td>
        <td>${component.componentClass.simpleName}</td>
        <td>
<c:forEach var="i" items="${component.interceptors}">
        - ${i.interceptorClass.simpleName}<br/>
</c:forEach>
        </td>
        <td>
<c:forEach var="p" items="${component.readParameters}">
        - ${p.key}<br/>
</c:forEach>
        </td>
        <td>
<c:forEach var="logic" items="${component.logics}">
        - ${logic.name} : ${logic.metadata.name}<br/>
</c:forEach>
        </td>
</tr>
</c:forEach>
</table>

<br/><br/>

<table style="width: 100%; border-style: solid; border-width: 1pt; border: solid 1pt; border-collapse: collapse;">
<tr>
        <td>Url</td>
        <td>Callback</td>
</tr>
<c:forEach var="component" items="${components}">
<c:forEach var="logic" items="${component.logics}">
<tr>
        <td>${component.name}.${logic.name}.logic</td>
        <td>${component.componentClass.name}.${logic.metadata.name}</td>
</tr>
</c:forEach>
</c:forEach>
</table>

</div>

Sistema de produção

O componente StatsQuery deve ser desabilitado no sistema real (não registre o componente): ele pode criar problemas de segurança e o usuário final talvez possa ver os parâmetros da requisição.