Работая при переходе от Struts1 к Springbooted Struts1, я столкнулся с проблемами, решающими действия.
При использовании ServletRegistrationBean
Struts1 будет работать должным образом (когда вызывается someAction.do, он работает правильно).
Проблема, однако, связана с сгенерированным HTML с:
<html:form action="someAction" .../>
Для рендеринга HTML someAction
необходимо добавить суффикс .do
, но это не так.
<form action="someAction" .../>
После отладки html taglib я обнаружил, что эквивалентный параметр в web. xml, servlet-mapping
на самом деле не реплицируется в ServletRegistrationBean
, хотя было указано .addUrlMappings("*.do")
.
На изображении ниже pageContext.getAttribute () извлекает '* .do' для базового c приложения Struts1, но в приложении Springbooted возвращает ноль. .
Что мне нужно сделать, чтобы pageContext.getAttribute(Globals.SERVLET_KEY, PageContext.APPLICATION_SCOPE);
вернул '* .do'?
@Bean
public ServletRegistrationBean strutsActionServlet() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
servletRegistrationBean.setServlet(new myActionServlet());
servletRegistrationBean.setLoadOnStartup(10);
servletRegistrationBean.setName("StrutsServlet");
servletRegistrationBean.addUrlMappings("*.do");
servletRegistrationBean.addInitParameter("config", "/WEB-INF/struts-config.xml");
return servletRegistrationBean;
}