站点图标 谷姐靓号网

有JAVA大佬吗?能否帮忙看个代码-cclylycc

Rate this post

Controller

他这个值location 是前端传到后台的,Controller层有了,但是model addtribute的时候就莫名其妙穿不过去了,model size=0了。。求解

热议
推荐楼 Mr.Qin 1小时前

我前端是用百度地图API获取到城市名字,如重庆,然后想把 重庆 这个关键词返回到后端,我就想用getLocati ...

你想多了,index模版已经在第一次时就渲染完成了,你前台ajax请求的/location那个只是又重新在服务端渲染了一遍index模版然后把html作为响应返回给客户端浏览器了,你可以F12看看/location的响应内容,是HTML,,,,而且也不会自动替换到你前台已经存在的HTML里面。。。。

推荐楼 ZeroOne 1小时前

这个出得来数据

你是在逗我们吗?你首页 index 里面根本就没有返回 locationHouseList,你用 jsp 怎么去渲染?你把 getLocation 里的代码放到上面的 index 方法里面去就可以了。最后就是你用 ajax 请求 getLocation 是几个意思?看你代码就是用jsp渲染的,如果是js渲染,那么 getLocation 就加上 @ResponseBody 注解,直接将查询的结果 List 返回即可。

推荐楼 cclylycc 2小时前

在controller return之前控制台输出下看看,如果有值那问题应该出在前端模板上,是不是那什么choose when写 ...

那你不贴你的index模版相关代码出来也不知道你是咋取的值啊, freemarker?JSP? ...


这个出得来数据

这个出不来数据

后端输出有值,就是前端显示不出来,我把choose when都注释了也没,只有foreach留下了。

2楼 Mr.Qin 2小时前

你那断点就不能放到return那行?

3楼 homehe 2小时前

封装为一个json对像传回去.

4楼 cclylycc 2小时前

你那断点就不能放到return那行?

有值,但是返回不了前端。。。

5楼 cclylycc 2小时前

封装为一个json对像传回去.

除了这种,我的方式是不行的吗

6楼 Mr.Qin 2小时前

有值,但是返回不了前端。。。

那你不贴你的index模版相关代码出来也不知道你是咋取的值啊, freemarker?JSP?

7楼 dragonfsky 2小时前

你们前端用的啥? jsp?你这不是ajax调用的吗

8楼 cclylycc 2小时前

那你不贴你的index模版相关代码出来也不知道你是咋取的值啊, freemarker?JSP? ...


这个出得来数据

这个出不来数据

9楼 华为任正非 2小时前

外行不懂,但是你那sql语句:city = #{location} 不加双引号真的没问题吗?

10楼 cclylycc 2小时前

外行不懂,但是你那sql语句:city = #{location} 不加双引号真的没问题吗?

加引号会报错,
java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1).

12楼 cclylycc 2小时前

JSP?直接用Spring boot @ResponseMapping

responsebody?

13楼 7836246 2小时前

responsebody?

对象转JSON@responsebody

14楼 gzlock 2小时前

你的size=0就是从数据库查询不到数据嘛
1先确定数据库有数据
2输出最终的sql语句方便在第三方数据库管理软件里测试,例如navicat,datagrip

15楼 cclylycc 2小时前

你的size=0就是从数据库查询不到数据嘛
1先确定数据库有数据
2输出最终的sql语句方便在第三方数据库管理软 ...

有数据,size=1,sql没问题。就是返回不到前端

16楼 gzlock 2小时前

3确定你的常量 index_house_location_num 大于0

17楼 cclylycc 2小时前

3确定你的常量 index_house_location_num 大于0

这个也是确定无误的

18楼 dragonfsky 2小时前

jsp接触的比较少 你试试前端f12调试下 看看接收到的是啥

19楼 华为任正非 2小时前

在controller return之前控制台输出下看看,如果有值那问题应该出在前端模板上,是不是那什么choose when写的阻拦了数据传递?

20楼 mlc 2小时前

换成Get请求拿试试

22楼 无缺 2小时前

没用过jsp,你直接序列化传回去在用Ajax修改不就行了吗

23楼 ZeroOne 1小时前

这个出得来数据

你是在逗我们吗?你首页 index 里面根本就没有返回 locationHouseList,你用 jsp 怎么去渲染?你把 getLocation 里的代码放到上面的 index 方法里面去就可以了。最后就是你用 ajax 请求 getLocation 是几个意思?看你代码就是用jsp渲染的,如果是js渲染,那么 getLocation 就加上 @ResponseBody 注解,直接将查询的结果 List 返回即可。

24楼 HOH 1小时前

不想看,jsp不好调试就<% %>

25楼 cclylycc 1小时前

你是在逗我们吗?你首页 index 里面根本就没有返回 locationHouseList,你用 jsp 怎么去渲染?你把 getLo ...

我前端是用百度地图API获取到城市名字,如重庆,然后想把 重庆 这个关键词返回到后端,我就想用getLocation接收,然后在model addattribute

//百度地图API功能
var map = new BMap.Map('map');
//获得当前城市
var myCity = new BMap.LocalCity();
myCity.get(myFun);
function myFun(result){
var cityName = result.name;
var realCityName = cityName.replace("市","");
var toRealCityName = realCityName.replace("省","");
var a = toRealCityName + "优质房源";
cityLocation.innerHTML = a;
getLocationByIp(toRealCityName);
}

26楼 LikeOracle 1小时前

不懂,绑定

27楼 华为任正非 1小时前

那这真不知道了,只能排插两块:
1. houseService.findByLocation 和 houseService.findTopList 返回的数据类型是否一致?
2. 如果一样(比如都是List)那就是前端模板输出的问题了,重点排查那块。
我没用过你这个,只用过themyleaf,帮不了啥忙……

28楼 dragonfsky 1小时前

你这多半是前端的问题 你得去前端f12看看

29楼 华为任正非 1小时前

你是在逗我们吗?你首页 index 里面根本就没有返回 locationHouseList,你用 jsp 怎么去渲染?你把 getLo ...

卧槽还真是,看了半天没注意,还是大佬厉害。
楼主那个是在Post里面调用了 /front/index,
get Mapping 的 index 里面根本没有这个值……

30楼 Mr.Qin 1小时前

我前端是用百度地图API获取到城市名字,如重庆,然后想把 重庆 这个关键词返回到后端,我就想用getLocati ...

你想多了,index模版已经在第一次时就渲染完成了,你前台ajax请求的/location那个只是又重新在服务端渲染了一遍index模版然后把html作为响应返回给客户端浏览器了,你可以F12看看/location的响应内容,是HTML,,,,而且也不会自动替换到你前台已经存在的HTML里面。。。。

32楼 cclylycc 1小时前

卧槽还真是,看了半天没注意,还是大佬厉害。
楼主那个是在Post里面调用了 /front/index,
get Mapping...

那咋改呢大佬。。。

33楼 hugh_wick 1小时前

卧槽了。。都TM2022年了。还在写JSP。看着都心累

34楼 ZeroOne 1小时前

我前端是用百度地图API获取到城市名字,如重庆,然后想把 重庆 这个关键词返回到后端,我就想用getLocati ...

那就是后面那种情况,加@ResponseBody注解,直接返回查询结果List即可,最后的大问题就是你getLocationByIp(toRealCityName); 后需要自己通过 js 将结果渲染到页面上去,你是不是认为能自动将 model 渲染进去?
你学JAVA EE开发多久了?连模板框架的运行原理都没搞明白,还能以为 ajax 获取的结果能够自动通过 jsp 的 foreach 渲染上去。jsp 渲染是在服务器上进行的,返回给客户端就是个静态的 html,js 获取的结果肯定是需要你自己手动通过 js 渲染到页面呀,还有就是你 jsp 中的 foreach 那块可以删了,或者抽取出来单独成一个jsp(这种做法你就可以不用加@ResponseBody注解,但返回值要改成抽取出来的jsp名称,最后js渲染直接用jquery的 html()方法即可)
PS:关键词一般说传给后端,后端才叫返回。。

35楼 华为任正非 半小时前

那咋改呢大佬。。。

原来那种方法实现不了的。
如果是百度API获取参数,POST传入后端,那最好的方式就是返回json,然后前端javascript重新渲染。
JSP只能渲染一次,百度API是在index渲染后才执行的,所以没法传入后端重新渲染。

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

退出移动版