Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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
Java 表单未将数据过帐到Spring控制器_Java_Angularjs_Json_Spring Mvc - Fatal编程技术网

Java 表单未将数据过帐到Spring控制器

Java 表单未将数据过帐到Spring控制器,java,angularjs,json,spring-mvc,Java,Angularjs,Json,Spring Mvc,我对Spring真的很陌生,想通过一些网上教程学习。我创建了一个简单的SpringMVC登录应用程序,使用AngularJS作为前端,并使用JSON将数据发布到SpringController 我的简单登录表单: <form id="loginForm" ng-submit="login()" novalidate ng-controller="loginController" align="center"> <fieldset>

我对Spring真的很陌生,想通过一些网上教程学习。我创建了一个简单的SpringMVC登录应用程序,使用AngularJS作为前端,并使用JSON将数据发布到SpringController

我的简单登录表单:

<form id="loginForm" ng-submit="login()" novalidate ng-controller="loginController" align="center">
            <fieldset>
                <div class="form-group col-lg-10">
                    <label for="username" class="control-label">Username</label>
                    <input class="form-control" ng-model="username" placeholder="Username" type="text">
                </div>
                <div class="form-group col-lg-10">
                    <label for="password" class="control-label">Password</label>
                    <input class="form-control" ng-model="password" placeholder="Password" type="password">
                </div>
                <div class="form-group">
                    <div class="col-lg-10 col-lg-offset-25">
                        <button type="submit" class="btn btn-primary">Login</button>
                        <button type="reset" class="btn btn-default">Reset</button>
                    </div>
                </div>
            </fieldset>
        </form>
My Web.xml:

<welcome-file-list>
        <welcome-file>pages/login.html</welcome-file>
    </welcome-file-list>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
        /WEB-INF/spring-core.xml
    </param-value>
    </context-param>

    <!-- Spring MVC -->
    <servlet>
        <servlet-name>spring-mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                /WEB-INF/spring-mvc.xml
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring-mvc</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
我的调度程序Servlet:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-4.1.xsd  
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-4.1.xsd
     http://www.springframework.org/schema/mvc
     http://www.springframework.org/schema/mvc/spring-mvc.xsd"     
    xmlns:context="http://www.springframework.org/schema/context">

    <context:component-scan base-package="com.app.web.controllers" />
    <mvc:annotation-driven />
</beans> 
这次我在Firebug中得到一个“错误400错误请求”错误代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 400 BAD_REQUEST</title>
</head>
<body><h2>HTTP ERROR 400</h2>
<p>Problem accessing /test/rest/dologin. Reason:
<pre>    BAD_REQUEST</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>                  

<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                

</body>
</html>
  };
}]);

请说明我在这里做错了什么。

我认为您的方法返回的是逻辑视图名称。相反,您应该在validateUser方法的正上方使用@ResponseBy注释,然后尝试返回任何字符串,因为此注释将直接将输出作为响应发送,而不是将其作为要解析的逻辑视图发送到view resolver 试试这个链接,在这篇使用SpringMVC的java json文章中解释得很好
我认为您的方法返回的是逻辑视图名称。相反,您应该在validateUser方法的正上方使用@ResponseBy注释,然后尝试返回任何字符串,因为此注释将直接将输出作为响应发送,而不是将其作为要解析的逻辑视图发送到view resolver 试试这个链接,在这篇使用SpringMVC的java json文章中解释得很好

在ajax调用中,您发送的是“数据”,在控制器中,您需要用户名和密码。这怎么可能@从URI发送内容时使用PathVariable。您正在发出POST请求,因此无法从URI获取数据。使用@modeldattribute(“userForm”)User User(这是您的POJO对象,对应于具有用户名和密码的表单)

我建议你看一些例子


当您甚至不使用rest控制器时,为什么URL映射状态为“rest”?

在ajax调用中,您发送的是“数据”,在控制器中,您需要用户名和密码。这怎么可能@从URI发送内容时使用PathVariable。您正在发出POST请求,因此无法从URI获取数据。使用@modeldattribute(“userForm”)User User(这是您的POJO对象,对应于具有用户名和密码的表单)

我建议你看一些例子


当您甚至没有使用rest控制器时,为什么URL映射会显示“rest”?

谢谢您的评论。你说的对我来说很有意义。我在代码中包含了这些更改。仍然是相同的错误:(谢谢你的评论。你说的对我来说是有意义的。我在代码中包含了这些更改。仍然是相同的错误:(我可能混合了一些教程。如果你有好的教程,你能推荐一个好的吗?我尝试映射到rest,因为这是我将来要做的。现在,只需使用一个简单的spring控制器。最好是这样:[链接]()我问你用REST映射你的URL的原因是因为它没有任何逻辑意义,试着让它合理和逻辑化。另外,Spring提供了一个RestController,它有点符合JAX-RS。总之,学习愉快。我试着像你提到的那样更改Spring控制器。仍然一样:(@p19 Try change
@ModelAttribute)(“userForm”)
@ModelAttribute
。我可能混合了一些教程。如果有,请推荐一个好的教程好吗?我尝试映射到rest,因为这是我将来想做的。现在,只需使用一个简单的spring控制器。最好的方法是:[链接]()我问你用REST映射你的URL的原因是因为它没有任何逻辑意义,试着让它合理和逻辑化。另外,Spring提供了一个RestController,它有点符合JAX-RS。总之,学习愉快。我试着像你提到的那样更改Spring控制器。仍然一样:(@p19 Try change
@ModelAttribute)(“userForm”)
@modeldattribute
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-4.1.xsd  
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-4.1.xsd
     http://www.springframework.org/schema/mvc
     http://www.springframework.org/schema/mvc/spring-mvc.xsd"     
    xmlns:context="http://www.springframework.org/schema/context">

    <context:component-scan base-package="com.app.web.controllers" />
    <mvc:annotation-driven />
</beans> 
var loginApp = angular.module('loginApp',[]);
loginApp.controller('loginController', ['$scope','$http',function($scope,$http) {

  $scope.login = function() {
          var data=$scope.fields;
          var response = $http.post('/test/rest/dologin',data).success(function(data){
            alert(response);
          });
      }
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 400 BAD_REQUEST</title>
</head>
<body><h2>HTTP ERROR 400</h2>
<p>Problem accessing /test/rest/dologin. Reason:
<pre>    BAD_REQUEST</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>                  

<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                

</body>
</html>
  };
}]);
NotReadableException: Required request body is missing