Padrão de URL para o mapeamento de servlet em web.xml
Pergunta
Eu preciso de uma solução alternativa com este mapeamento URL no web.xml para criar URLs com uma letra, seguido por um "_" seguido por qualquer combinação de caracteres alfanuméricos.
Eu quero mapear um servlet para algo como isto:
/something_*
Em vez de:
/something/*
Usando diferentes "algumas coisas" para diferentes JSP. Exemplo:
/search_Something-I-searched-for
Eu tentei usar:
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/something_*</url-pattern>
</servlet-mapping>
Mas isso não parece trabalho. Esta resposta me diz que eu não posso fazer isso dentro web.xml, então talvez haja alguma solução alternativa.
Eu não sei se esta informação é importante, mas eu estou usando JBoss e Struts2 no meu projeto.
Solução
Mapa um servlet para o diretório que contém. Dentro dessa servlet, desmontar o caminho URL e para a frente para o apropriado nomeado servlet .
Outras dicas
Por que não tentar Spring MVC Framework. Primavera pode oferecer que o mapeamento url quiser.
@RequestMapping(value="/something_{name}", method=RequestMethod.GET)
public String demo(@PathVariable(value="name") String name, ModelMap map) {
String something = name;
// Do manipulation
return "something"; // Forward to something.jsp
}
Watch este Spring MVC Framework Tutorial