Шаблон URL-адреса для сопоставления сервлетов в web.xml
Вопрос
Мне нужен обходной путь с этим сопоставлением URL-адресов в web.xml для создания URL-адресов с буквой, за которой следует «_», за которым следует любая комбинация буквенно-цифровых символов.
Я хочу сопоставить сервлет примерно так:
/something_*
Вместо:
/something/*
Использование разных «что-то» для разных JSP.Пример:
/search_Something-I-searched-for
Я пробовал использовать:
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/something_*</url-pattern>
</servlet-mapping>
Но это, похоже, не работает.Этот ответ говорит мне, что я не могу сделать это в web.xml, так что, возможно, есть обходной путь.
Не знаю, важна ли эта информация, но я использую в своем проекте JBoss и Struts2.
Решение
Сопоставьте сервлет с содержащим его каталогом.Внутри этого сервлета разберите путь URL и вперед соответствующему именованный сервлет.
Другие советы
Почему бы не попробовать Spring MVC Framework.Spring может предложить такое сопоставление URL-адресов, которое вы хотите.
@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
}