Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 弹簧&x27;s控制器未按预期工作-返回的视图名称管理不正确_Spring_Spring Mvc_Controller - Fatal编程技术网

Spring 弹簧&x27;s控制器未按预期工作-返回的视图名称管理不正确

Spring 弹簧&x27;s控制器未按预期工作-返回的视图名称管理不正确,spring,spring-mvc,controller,Spring,Spring Mvc,Controller,我有一个简单的SpringMVC应用程序 我的控制器有一个请求映射定义,例如: @Controller public class TestController { .... @RequestMapping(value = "/addMerchant", method = RequestMethod.POST) public String addMerchant(Model model) { logger.info("add merchant is called"); ret

我有一个简单的SpringMVC应用程序

我的控制器有一个请求映射定义,例如:

@Controller
public class TestController {
....

@RequestMapping(value = "/addMerchant", method = RequestMethod.POST)
public String addMerchant(Model model) {
    logger.info("add merchant is called");  
    return "entrance";
}

....
}
我将视图解析器定义为:

<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".jsp" />
</beans:bean>

我的简单html表单是:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="sf" %>
<html>
<head>
<title>Entrance</title>
</head>
<body>
    <s:url var="addMerchantUrl" value="/addMerchant"/>
    <sf:form method="post" action="${addMerchantUrl}" commandName="merchant">
        <fieldset>
            <table>
                <tr>
                    <td><label for="name">Name</label></td>
                    <td><input id="name" name="name" type="text" /></td>
                </tr>
                <tr>
                    <td colspan="2"><input name="commit" type="submit" value="Add Merchant" /></td>
                </tr>
            </table>
        </fieldset>
    </sf:form>      
</body>
</html>

入口
名称
因此,我所期望的是,当我向URL“
addMerchant
”发出
POST
请求时,它只需发布一个日志(调用addMerchant),然后作为view“entry”返回,它基本上是
“/views/entry.jsp”

问题是,当我成功触发对
“/addMerchant”
的POST请求时,它会成功地定向到上面的
addMerchant
方法。但是,尽管
“addMerchant”
方法返回的视图名称是“entry”,但我在浏览器端遇到了一个错误,因为找不到
addMerchant.jsp

我附加了一个拦截器(Spring的
HandlerInterceptorAdapter
)来观察
postHandle
,我观察到的是传递给
postHandle
的视图名称信息不是“入口”,而是
“addMerchant”


这怎么可能发生,我做得不对吗

你能把你的表单代码粘贴到/addMerchant上吗?我刚刚添加了表单代码,我刚刚试着运行你的代码,效果很好。再次尝试创建war,同时检查服务器日志中是否有任何错误?虽然我仍然不能确定根本原因,但我使代码按预期工作。问题是,我定义了一个方面“围绕”控制器方法,称为requestmapping,它只是注释掉方面定义,控制器开始正常工作。