<%! public static final String SRV_ROOT = getServletContext().getRealPath("/"); %>
Erro: non-static method getServletContext() cannot be referenced from a static context.
<%! public static final String SRV_ROOT = getServletContext().getRealPath("/"); %>
Erro: non-static method getServletContext() cannot be referenced from a static context.
Bom, você não pode invocar um método não static para valorar uma variável static. É uma restrição da linguagem…
Bom, disso eu já sabia.
Mas o que voce faria para armazenar esta informação (getServletContext().getRealPath("/")) em uma constante?
Nunca tive a necessidade de colocar o context numa constante. Aliás, scriptlet é algo que não utilizaria…
Uma sugestão é mantê-lo como variável, pois, no contexto da página ela se manterá a mesma, a não ser que você force a alteração.
A principio eu to fazendo isso, mas pelo que andei lendo, o pessoal cria uma classe para concentrar as constantes. Esta é a melhor prática?
Se você usa java < 1.5, sim. Senão, sugiro enums
Como eu vejo a versão aqui?
O JDK do projeto é 1.6
Então, você pode usar enum. De modo grosseiro (E muito grosseiro) enum é uma classe de constantes evoluída, melhorada e superior.
Dá uma pesquisada aí.
Abraço