2013-04-29 73 views
0

几天前这种配置的作品,但现在我已经得到:Spring MVC的视图

javax.servlet.ServletException: Could not resolve view with name '' in servlet with name 'XXX' 

为:

http://localhost:8081/resourceArea/save 

我的控制器看起来像:

@Controller 
@RequestMapping("/resourceArea") 
public class ResourceAreaController{ 
.... 
@RequestMapping(value = "/save", method = RequestMethod.POST) 
public String save(@ModelAttribute @Valid ResourceArea aEntity, BindingResult aBindingResult, Model aModel, SessionStatus status, 
        HttpSession session) { 
... 
} 

我视图配置了之前完美的瓷砖:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE tiles-definitions PUBLIC 
    "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" 
    "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> 
<tiles-definitions> 
<definition name="base.definition" 
      template="/WEB-INF/pages/layouts/layout.jsp"> 
    <put-attribute name="title" value="Pit 2 Web Demo"/> 
    <put-attribute name="header" value="/WEB-INF/pages/layouts/header.jsp"/> 
    <put-attribute name="menu" value="/WEB-INF/pages/layouts/menu.jsp"/> 
    <put-attribute name="content" value=""/> 
    <put-attribute name="footer" value="/WEB-INF/pages/layouts/footer.jsp"/> 
</definition> 

<definition name="home" extends="base.definition"> 
    <put-attribute name="content" value="/WEB-INF/pages/home.jsp"/> 
</definition> 

<definition name="denied" extends="base.definition"> 
    <put-attribute name="content" value="/WEB-INF/pages/denied.jsp"/> 
</definition> 

<definition name="/*/*" extends="base.definition"> 
    <put-attribute name="title" value="{2} {1}"/> 
    <put-attribute name="content" value="/WEB-INF/pages/{1}/{2}.jsp"/> 
</definition> 

<definition name="/raw/*/*" template="/WEB-INF/pages/layouts/empty.jsp"> 
    <put-attribute name="content" value="/WEB-INF/pages/{1}/{2}.jsp"/> 
</definition> 

</tiles-definitions> 

这很奇怪,因为这只发生在保存操作中。

+0

在Spring中,方法返回的字符串必须与a相匹配查看文件名!你在保存方法中返回什么?实际上是否需要返回?你不能只使用void? – MatthiasLaug 2013-04-29 06:33:31

+0

似乎完全不会调用保存视图:|所以问题是在调用视图 – 2013-04-29 07:03:28

回答

0

你的方法从

public String save(...) 

改变

public void save(...) 

或作为替代(既然你save方法是POST动作),你可能要实现的PostRedirectGet paradigm

public String save(...){ 
    // do whatever you want here 
    return "redirect:another view"; 
} 
+0

是固定的,它调用返回其他方法,而不是其他视图。像这样:return index(); – 2013-04-29 09:38:02

相关问题