2014-03-27 37 views
0

我有問題將ajax與spring-mvc耦合在一起。我想創建一個簡單的計算器,提供給JSP中的數字發佈它們並得到總和。這些值是正確發送的(根據日誌 - 帖子底部),但我無法在jsp頁面上顯示結果。無法在jsp上從ajax發佈spring-mvc的結果

我的代碼:

HelloController.java

@Controller 
@RequestMapping("/springMVCTest/") 
public class HelloController { 

    private final static Logger logger = Logger.getLogger(HelloController.class.getName()); 

    @Resource(name = "addService") 
    private MathClass mathClass; 

    @RequestMapping(value = "test", method = RequestMethod.GET) 
    public String printWelcome(ModelMap model) { 
     model.addAttribute("message", "Hello world!"); 
     logger.log(Level.INFO, "get"); 
     return "hello"; 
    } 
    @RequestMapping(value = "test", method = RequestMethod.POST) 
    public @ResponseBody Integer add(@RequestParam(value = "inputNumber1", required = true) Integer x, 
         @RequestParam(value = "inputNumber2", required = true) Integer y, ModelMap model) { 
     logger.log(Level.INFO, "x: " + x + " y: " + y + " sum: " + mathClass.add(x,y)); 
     return mathClass.add(x,y); 
    } 
} 

MathClass.java @Service( 「addService」) 公共類MathClass {

public Integer add(Integer x, Integer y){ 
     return x+y; 
    } 
} 

的hello.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
     pageEncoding="UTF-8"%> 

<html> 
<body> 

<h1>${message}</h1> 

<div> 
    Add Two Numbers: 
    <br> 
    <input id="inputNumber1" name="inputNumber1" type="text" size="5"> + 
    <input id="inputNumber2" name="inputNumber2" type="text" size="5"> 
    <br> 
    <input id="submitButton" type="submit" value="Add"> 
    <br> 
    <span id="sum">result</span> 
</div> 

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 

<script type="text/javascript"> 

    $('document').ready(function(){ 

     $('#submitButton').click(function(){ 

      $.post("http://localhost:8080/springMVCTest/test", 
        { 
         inputNumber1: $("#inputNumber1").val(), 
         inputNumber2: $("#inputNumber2").val() 
        }, 
        function(data){ 
         alert(data); 
         $("#sum").text(data); 
        } 
      ); 
// 
     }); 
    }); 

</script> 

</body> 
</html> 

MVC-調度-servlet.xml中

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


    <context:annotation-config/> 

    <context:component-scan base-package="com.springapp.mvc"/> 

    <mvc:annotation-driven/> 

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

</beans> 

的web.xml

<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

    <display-name>Spring MVC Application</display-name> 

    <servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

</web-app> 

,這是從我的記錄器數據:

Mar 27, 2014 9:29:12 PM com.springapp.mvc.HelloController printWelcome 
INFO: get 
Mar 27, 2014 9:29:15 PM com.springapp.mvc.HelloController add 
INFO: x: 2 y: 32 sum: 34 

在Java類的計算都OK,但總和不會發送到JSP。你有什麼線索爲什麼發生這種情況?

編輯: 根據Chrome Inspector,我得到了406不可接受的迴應。

+1

你檢查你所得到的HTTP響應(如果有的話)? – NeplatnyUdaj

+0

我不知道該怎麼做。但是我做了什麼,在ajax $ .post而不是函數(data){alert(data); $(「#sum」)。text(data); }我把簡單的提醒功能,我得到了消息彈出,所以根據$ .post api方法成功完成 – pezetem

+0

什麼是響應狀態?日誌可能會顯示正確的結果,但不保證任何內容。 – Bart

回答

0

當我發現了,我沒有包括在pom.xml傑克遜映射器-ASL這就是爲什麼它沒有工作