在点击图片链接上填充数据

时间:2016-12-21 15:32:59

标签: angularjs spring-mvc

在点击图像(地图)时填充数据时,我被困在角度方面。

我的主页Home.jsp页面成功显示URL为http://localhost:7001/LocalMarket/。但是当我点击特定的状态图像链接时。它抛出406错误,URL更改为http://localhost:7001/LocalMarket/home.web?statechoice=ME。 我已经调试过,数据从Spring MVC端填充到angular js $ scope.names。我希望数据本身填充在同一页面上。

回到Home.jsp

<script>
       var app = angular.module('myApp', []);

       function MyController($scope, $http) {

              $scope.getPersonDataFromServer = function() {
                     $http({
                           method : 'GET'

                     }).success(function(data, status, headers, config) {
                           //alert(data);
                           $scope.names= data;
                           console.log(data);

                     }).error(function(data, status, headers, config) {
                           // called asynchronously if an error occurs
                           // or server returns response with an error status.
                           console.log("error");
                     });

              };

       };

</script>

</head>

<body style="text-align: center;" data-ng-app="myApp">
       <h4>US map</h4>
       <div>
              <img src="images/usmap.gif" alt="US MAP" width="529" height="334"
                     border='0' usemap='#usimage' align="middle">
       </div>
       <div
              data-ng-controller="MyController">
<div >
<map name='usimage'>
                     <!--- BEGIN: East --->
                     <area shape='polygon' coords='489,52,502,31,513,32,518,54,490,71' data-ng-click ="getPersonDataFromServer()" href='home.web?statechoice=ME' target="_self"  alt='Maine'>
<map>
</div>
<div >

                     <table  border ="1" style="margin-top: 20px;">
                     <tr style="background-color:lightgray;">
                                  <th>Cities</th>

                     <tr data-ng-repeat="city in names">
                                  <td>{{city}}</td>

              </div>

控制器 - 我在impl类中设置值

@RequestMapping(value = "/home.web", method = RequestMethod.GET, produces = {
                     "application/xml", "application/json" })

       public  @ResponseBody List<String> getUSCity() {

              String statechoice ="ME";
              List<String> msa = new ArrayList<String>();           
              msa = msaService.getMsaCodes(statechoice);

              return msa;
       }

我无法确定我是否遗漏了任何东西。 感谢

2 个答案:

答案 0 :(得分:0)

当您登录日志data$scope.names时会发生什么? 在错误部分中,将错误对象传递给回调函数,并在出现错误时将其记录下来。这将提供更多可帮助查明问题的详细信息。

答案 1 :(得分:0)

可能是您的REST端点同时生成JSON和XML。 406 HTTP错误是&#34;不可接受&#34;,这意味着客户端请求的接受标头与服务器返回的内容不匹配。默认情况下,$ http服务仅接受text和JSON作为返回类型。尝试删除REST端点的@Produces注释中的application / xml,或查看the $http documentation以获取有关如何更改$ http的默认Accept标头的说明。