我无法理解为什么在尝试通过POST方法访问/liginform.dlp时出现404错误
我有以下web.xml映射:
<servlet-name>doolloop</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>doolloop</servlet-name>
<url-pattern>*.dlp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>doolloop</servlet-name>
<url-pattern>/index.dlp</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.dlp</welcome-file>
</welcome-file-list>
doolloop-servlet.xml如下所示:
<context:component-scan base-package="com.doolloop.controllers" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
我有两个jsp页面 /index.jsp /forms/loginform.jsp
控制器看起来像这样:
@Controller
public class DoolloopController{
protected final Log logger = LogFactory.getLog(getClass());
@RequestMapping("/index.dlp")
public ModelAndView index(){
logger.info("Return View");
return new ModelAndView("index");
}
以下代码带来404错误:
@RequestMapping(value="/loginform.dlp",method = RequestMethod.GET)
public ModelAndView CheckLogin(){
ModelAndView mv = new ModelAndView("/form/loginform");
return mv;
}
如果我将其更改为以下方式,则效果非常好:
@RequestMapping(value="/loginform.dlp",method = RequestMethod.GET)
public String showForm() {
return "/forms/loginform";
有什么问题?请帮忙
答案 0 :(得分:4)
仔细检查您的进口。请务必使用:
org.springframework.web.servlet.ModelAndView
而不是:
org.springframework.web.portlet.ModelAndView.
第一个用于servlet,后一个用于portlet。
答案 1 :(得分:2)
也许你解决的JSP路径以双斜杠开头(一个来自prefix
属性,另一个来自返回值)。