ajax获得后台逻辑代码传送过来的数据,当采用实体类接收的时候,实体类中必须编写get/set方法,否则,ajax技术获得不到相应数据,执行error方法中的相关逻辑。相应展示代码如下:
业务代码:
//进行点名的后台操作 业务逻辑代码
@RequestMapping("/callTeacherController")
@ResponseBody
public Detail callTeacherController(HttpServletRequest request,HttpServletResponse response,HttpSession session,
String in,String username){
//判断是否找到后台逻辑
System.out.println(username);
in="计算机2班";
ResponseStatus<Void> rr=null;
List<Student> list=null;
Detail det=null;
try {
list=teacherServiceImpl.selectStudentService(in);
for(Student stu:list){
String usernameStu=stu.getUsername();
String number=stu.getNumber();
// System.out.println(usernameStu+","+number);
//
det=new Detail(usernameStu,number);
}
//输出返回的学生列表
System.out.println("本班学生为==============="+list);
System.out.println("学生姓名和学号为:---------------"+det);
// JSONObject json=null;
// session.setAttribute("callList", list);
// rr=new ResponseStatus<Void>(1,"查询成功");
} catch (Exception e) {
// rr=new ResponseStatus<Void>(0,"查询失败");
}
//要想正确返回正确的信息,实体类中必须重写对应数据成员的get/set方法
return det;
}
对应接收实体类型定义:
package cn.jmsu.csti.smis.bean;
import java.io.Serializable;
/**
* 点名对象
* @author 博弈
*
*/
public class Detail implements Serializable{
/**
* 序列号
*/
private static final long serialVersionUID = 1L;
private String username;
private String number;
public Detail(String username, String number) {
super();
this.username = username;
this.number = number;
}
/* public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public static long getSerialversionuid() {
return serialVersionUID;
} */
@Override
public String toString() {
return "Detail [username=" + username + ", number=" + number + "]";
}
}
前台展示功能页面:
<script type="text/javascript">
function call(){
$.ajax({
url:"${pageContext.request.contextPath }/teacherController/callTeacherController.do",
type:"post",
dataType:"json",
data:"username="+"success very good!",
success:function(obj){
//alert(obj.username+","+obj.number);
//将获取的数据存入到全局变量中,供之后的使用
username=obj.username;
number=obj.number;
document.getElementById("span_id").innerHTML=username+"+"+number;
},
error:function(obj){
alert("状态返回失败,进入重建状态...........");
}
});
}
</script>
</head>
<body>
<p>教师详情操作页面:</p>
<div>
<span id="span_id">
</span>
</div><br>
<button id="but" onclick="call()">开始点名</button>
</body>
出现的情况:
当实体类中的get/set方法没有书写的时候,业务逻辑传送回来的数据,在ajax中的接收中获得不到,执行error中的
当实体类中的get/set方法书写了,则在ajax中的接收中可以获得到对应的数据,执行success中的功能片段