我有一些内容需要动态加载我的控制器和一些我想以静态方式传递的内容。
目前我必须在dispatcher-servlet.xml
中手动配置控制器的路径,例如@RequestMapping
无效。如果我从<mvc:resources mapping="/static/**" location="/static/" />
删除dispatcher-servlet.xml
行,则会再次正确阅读注释。
我试图在web.xml
中更改调度程序servlet的上下文url,并将静态页面放在spring控件之外,但这也不起作用,所以我还原它。
我的目标是从urlMapping
中删除dispatcher-servlet.xml
bean并通过注释完成。据我所知,还应该删除AbstractController
和handleRequestInternal
部分。
让我感到困惑的是,当我遗漏静态资源行时,我只能使用注释。
以下是我目前州的相关行动:
调度-servlet.xml中
<context:component-scan base-package="some.pkg.containing.controllers" />
<mvc:resources mapping="/static/**" location="/static/" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/dashboard/*">dashboardController</prop>
</props>
</property>
</bean>
的web.xml
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
控制器包装:
@Controller
@RequestMapping("/dashboard")
public class DashboardController extends AbstractController {
public ModelAndView getSite() {
ModelAndView retVal = new ModelAndView("dashboard_base");
retVal.addObject("url", "/dashboard");
return retVal;
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
return getSite();
}
}
答案 0 :(得分:0)
你必须告诉春天的mvc部分它也应该尊重你的注释。因此,如果您将此行添加到dispatcher-servlet.xml
,它将起作用:
<mvc:annotation-driven />