ModelandView 404问题

时间:2010-10-13 17:09:30

标签: java spring spring-mvc

我无法理解为什么在尝试通过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";

有什么问题?请帮忙

2 个答案:

答案 0 :(得分:4)

仔细检查您的进口。请务必使用:

org.springframework.web.servlet.ModelAndView

而不是:

org.springframework.web.portlet.ModelAndView.

第一个用于servlet,后一个用于portlet。

答案 1 :(得分:2)

也许你解决的JSP路径以双斜杠开头(一个来自prefix属性,另一个来自返回值)。