2016-05-07 7 views
0

Wie json Datenantwort von Controller JQueryAjax mit Spring
Ich versuche json Daten-Controller erhalten, aber Fehler ststus in JQueryAjax bekommen, Haben einen Fehler in meinem Code ist dies eine einfache Login-AnwendungWie bekomme ich JSON-Datenantwort vom Controller zu JQueryAjax mit Spring?

Dieser im Frühjahr ist mein Controller

HomeController.java

@RequestMapping(value = "/login.htm", method = RequestMethod.POST, produces = "application/json") 
    public @ResponseBody User loginUser(HttpServletRequest request, HttpServletResponse response, User ub) 
    { 

     String email = request.getParameter("txt_email"); 
     String password = request.getParameter("txt_password"); 

     ub.setEmail(email); 
     ub.setPassword(password); 

     UserServiceImpl us = new UserServiceImpl(); 
     User ub1= us.verifyUserLogin(ub); 

     return ub1; 
    } 

Das ist mein JQueryAjax

data.js

function usersignin(url) 
    { 
     var val = signin_validate(); 
     if (val == false) 
     { 
      return; 
     } 
     var email = $('#txt_email').val(); 
     var password = $('#txt_password').val(); 
     var formData = 
     { 
       'txt_email' : email, 
       'txt_password' : password, 

     }; 
     $.ajax(
       { 
        type : 'POST', 
        url : url, 
        data : formData, 
        dataType : 'json', 

        success : function(res, textStatus) 
        { 
         var msg="Succesfully..! Login"; 
         showAlertLogin(msg); 
         window.location.href='index.jsp'    

        }, 

        error : function(res, textStatus) 
        { 
         var msg="Failed..! Login"; 
         showAlertLogin(msg); 
         window.location.href='layout.jsp'   

        } 
       }); 

    } 

Ich habe Abhängigkeitsdatei

<dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-core-asl</artifactId> 
     <version>1.9.10</version> 
    </dependency> 

    <!-- Jackson JSON Mapper --> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.10</version> 
    </dependency> 

    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>2.5.1</version> 
    </dependency> 

    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.5.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-annotations</artifactId> 
     <version>2.5.1</version> 
    </dependency> 

    <dependency> 
     <groupId>com.fasterxml.jackson.jaxrs</groupId> 
     <artifactId>jackson-jaxrs-base</artifactId> 
     <version>2.6.1</version> 
    </dependency> 

Mein Dispatcher-servlet.xml

<mvc:annotation-driven /> 

<context:annotation-config/> 

<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> 
    <property name="mediaTypes"> 
     <map> 
      <entry key="xml" value="application/xml"/> 
      <entry key="json" value="application/json"/> 
     </map> 
    </property> 
    <property name="ignoreAcceptHeader" value="true"/> 
    <property name="favorPathExtension" value="true"/> 
</bean>  

Aber ich habe nicht json Antwort in Ajax bekommen nur Fehler bekommen, warum?

Zeigen Fehler in der Konsole

[http-nio-8080-exec-5] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Handler Ausführung einer Ausnahme: nicht akzeptabel Darstellung finden kann

bekam ich 406 Fehler in meinem Browser-Konsole zu

+0

Versuchen Sie, diese http://stackoverflow.com/questions/7197268/spring-mvc-httpmediatypenotacceptableexception –

Antwort

0

Frühling mvc Einstellungen:

<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"> 
      <mvc:message-converters register-defaults="true"> 
       <bean class="org.springframework.http.converter.StringHttpMessageConverter"> 
        <constructor-arg value="UTF-8"/> 
       </bean> 
       <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
        <property name="supportedMediaTypes"> 
         <list> 
          <value>application/json;charset=UTF-8</value> 
          <value>text/html;charset=UTF-8</value> 
         </list> 
        </property> 
       </bean> 
      </mvc:message-converters> 
     </mvc:annotation-driven> 
+0

habe ich diesen Code in meinem Dispatcher Servlet bekam eine Fehlermeldung zeigt> CVC-Komplex-type.3.2.2: Attribut 'content-negotiation-manager' darf nicht im Element 'mvc: annotation-driven' erscheinen. –

+0

Ich habe diesen Code in meinen Dispatcher gesetzt. Servlet.xml hat einen Fehler bekommen, der ** cvc-complex-type.3.2.2 zeigt: Attribut 'content-negotiation-manager' darf nicht im Element 'mvc: annotation-driven' erscheinen * * –

+0

entfernen alt Ich habe einen Zeitraum verpasst – zhangbowen

0

Add folgenden Code .....

<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> 
      <property name="mediaTypes"> 
       <map> 
        <entry key="xml" value="application/xml"/> 
        <entry key="json" value="application/json"/> 
       </map> 
      </property> 
      <property name="ignoreAcceptHeader" value="true"/> 
      <property name="favorPathExtension" value="true"/> 
     </bean> 
0

Sorry.Our Zeit ist wahrscheinlich das Gegenteil.

entfernen Ihre <mvc:annotation-driven/> und fügen Sie den Code ein:

Entfernen von Ihrem Controller-Methode erzeugt.

<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"> 
    <mvc:message-converters register-defaults="true"> 

     <bean class="org.springframework.http.converter.StringHttpMessageConverter"> 
      <constructor-arg value="UTF-8"/> 
     </bean> 

     <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
      <property name="supportedMediaTypes"> 
       <list> 
        <value>application/json;charset=UTF-8</value> 
        <value>text/html;charset=UTF-8</value> 
       </list> 
      </property> 
      <property name="prettyPrint" value="false"/> 
      <property name="objectMapper"> 
       <bean class="spider.common.mapper.JsonMapper"></bean> 
      </property> 
     </bean> 
    </mvc:message-converters> 
</mvc:annotation-driven> 


<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> 
    <property name="mediaTypes"> 
     <map> 
      <entry key="xml" value="application/xml"/> 
      <entry key="json" value="application/json"/> 
     </map> 
    </property> 
    <property name="ignoreAcceptHeader" value="true"/> 
    <property name="favorPathExtension" value="true"/> 
</bean>