微信小程序,前端收不到后端传过来的值,找了一下午了,比知道怎么改
前端要收到后端的bmid然后通过bmid显示数据库中一条记录的多张图片,现在收不到,前端显示错误
GET http://localhost:8080/bm2001/getOne?bmid=undefined 500 (Internal Server Error)
Setting data field "ps" to undefined is invalid.
后端显示错误:
Servlet.service()引发异常
java.lang.NumberFormatException: For input string: "undefined"
onLoad: function (options) {
var id=options.bmid;
var _this=this;
wx.request({
url: 'http://localhost:8080/bm2001/getOne?bmid='+id,//根据bmid查询到保姆的所有信息
success:function(res){
console.log(res.data);
var ps= res.data.imgs;//保姆的所有图片
_this.setData({"ps":ps})
}
})
},
@WebServlet("/getOne")
public class GetOneServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection conn = DBUtils.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
String id = request.getParameter("bmid");
int bmid = Integer.parseInt(id);
try {
ps = conn.prepareStatement("select * from bm where bmid=?");
ps.setInt(1, bmid);
rs=ps.executeQuery();
Bm bm = null;
while(rs.next()) {
String name = rs.getString(2);
int age = rs.getInt(3);
String gender = rs.getString(4);
int year=rs.getInt(5);
int money = rs.getInt(6);
String edu = rs.getString(7);
String home = rs.getString(8);
String work=rs.getString(9);
String imgurl=rs.getString(10);
String [] imgs = imgurl.split(",");
bm = new Bm(bmid, name, age, gender, year, money, edu, home, work, imgs);
}
Gson g = new Gson();
String json = g.toJson(bm);
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(json);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当前的问题并不在于前端是否接收到了后台的信息,而是在于前台向后台请求信息的时候
参数bmid
的值错了:我猜你可能是对HTTP异步请求没有理解太好。
你前面的代码可能是这样的:
上述方法是将导致
options.bmid
的值为undefined
,正确的打卡方式应该是这样的: