2012-07-10 57 views
2

我在重定向页面时遇到问题。Spring MVC + Apache tiles,表单验证和重定向

控制器:

@Controller 
@RequestMapping("/user") 
public class UserController { 

    @RequestMapping(method = RequestMethod.POST) 
    public String processSubmit(@Valid User user, 
      BindingResult result) { 

     if (result.hasErrors()) { 

        return "userForm"; 

        **It will show error - Could not resolve view with name 'userForm' in servlet with name 'dispatcher'** 


        return "redirect:user.htm"; 

        **It will redirect page but without error messages**              

     } else { 
      **same problem here** 
      return "userResult"; 
     } 
    } 

    @RequestMapping(method = RequestMethod.GET) 
    public ModelAndView initForm(ModelAndView model) { 
     User us = new User(); 
     model.addObject("user", us); 
     return model; 

    } 

} 

调度员的servlet:

<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass"> 
     <value> 
      org.springframework.web.servlet.view.tiles2.TilesView 
     </value> 
    </property> 
</bean> 
<bean id="tilesConfigurer" 
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/tiles.xml</value> 
     </list> 
    </property> 
</bean> 

的web.xml:

<servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.htm</url-pattern> 
    </servlet-mapping> 

没有砖是一切就OK了。但是,当我配置调度程序使用瓷砖,重定向不工作,我不知道如何解决它。

+1

“userResult”是否为瓦片的名称? – 2012-07-10 22:01:33

+0

不,但非常感谢你的问题。我知道现在的问题在哪里:)。 – enkor 2012-07-11 08:12:03

+0

然后请编辑/发布解决方案并将问题标记为已解决:) – 2012-07-11 13:55:13

回答

3

解决方案:

我必须返回tile的名称而不是jsp文件。感谢jerome。