Tenho uma aplicação onde possuo um crud bem básico:
@Get
public void list(Paging paging);
@Get
public void edit(Long id);
@Post
public void store(BranchDTO branch);
@Delete
public void delete(BranchDTO branch);
E no meu JSP tenho assim:
<w:form action="/branch/" method="post">
<button type="submit" name="_method" value="DELETE" class="delete">
Excluir
</button>
<button type="submit" class="store">
Salvar
</button>
</w:form>
Em qualquer navegador decente funciona direitinho tanto o store quanto o delete. Porém no IE7 quando o botão Excluir é pressionado tenho a exception:
WARNING: StandardWrapperValve[default]: PWC1406: Servlet.service() for servlet default threw exception
java.lang.IllegalArgumentException: HTTP Method not known: Excluir
at br.com.caelum.vraptor.resource.HttpMethod.of(HttpMethod.java:58)
at br.com.caelum.vraptor.http.DefaultResourceTranslator.translate(DefaultResourceTranslator.java:51)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:64)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
Caused by: java.lang.IllegalArgumentException: No enum const class br.com.caelum.vraptor.resource.HttpMethod.EXCLUIR
at java.lang.Enum.valueOf(Enum.java:196)
at br.com.caelum.vraptor.resource.HttpMethod.valueOf(HttpMethod.java:31)
at br.com.caelum.vraptor.resource.HttpMethod.of(HttpMethod.java:55)
Pelo que eu notei o IE está enviando Excluir ao invés de DELETE no _method. Como contornar isso, já que só nesse pseudo-navegador que as coisas não funcionam? Obvio que eu cogitei usar Firefox, porém essa aplicação precisa ser acessada mesmo de qualquer navegador.