第一步:导入相应的包
第二步:写个Action类,这个Action类返回的就是你要查询数据库的信息。
第三步:配置action,与普通action一样的配置,但在返回页面的时候必须是新页面,而且这个页面必须是写JSON的表达式,只有这些表达式,不可重用。
第四步:写JS代码,发送JSON。
具体例子:
第一:action类:
/**
*jquery的JSON技术获取数据
* 通过部门编号获取教师
*@authod陈海文
* */
public class Teacher extends ActionSupport{
private static final long serialVersionUID = 8569590764453392595L;
private int id;
private List<com.heaven.Enpty.Teachers> list;
private TeacherCourseServiceimpl terchercourseserviceimpl;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public TeacherCourseServiceimpl getTerchercourseserviceimpl() {
return terchercourseserviceimpl;
}
public void setTerchercourseserviceimpl(
TeacherCourseServiceimpl terchercourseserviceimpl) {
this.terchercourseserviceimpl = terchercourseserviceimpl;
}
public List<com.heaven.Enpty.Teachers> getList() {
return list;
}
public void setList(List<com.heaven.Enpty.Teachers> list) {
this.list = list;
}
public String execute() throws Exception {
list=this.terchercourseserviceimpl.findTeacherByTdept(id);
return SUCCESS;
}
}
第二步:
配置Action
<action name="te" class="com.heaven.action.Teacher">
<result name="success">/jsp/MyJsp.jsp</result>
</action>
(可以直接访问Action来调试,比如这个action配置的访问:http://。。。。。。/te.action)
第三步:
写JSP
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
([{name:'---请选择老师---'}
<s:iterator var="t" value="list">
,{name:'${t.tname}'}
</s:iterator>]
)
就是传说中的JSON表达式:这里的意思是【】表示数组,里面有很多个{},每个{}就是JSON表达式。其中{键:'值'},这样的话在JS里面就可以直接找键就取出值来。其中list是action类得返回数据的对象引用,也就是SetList()方法的List名字,其实就是字段名。注意要赋值才有效,我这里是查询数据库得List类型的list=this.terchercourseserviceimpl.findTeacherByTdept(id);最外层大口号是因为JS里面要返回JSON格式数据变为对象,没口号将得不到对象,而是未定义的字段
第四步:写JS
$(function() {
//触发select改变状态的事件
$("#depart").change(function() {
//初始一个HTTP请求,返回JSON数据
$.get("te.action",
{id:$(this).val()},//JSON的表达式参数,id对应着Action里的那个参数Id
function(data){ //回调函数返回
var tcr = eval(data);//把JSON格式的数据变为一个对象
var $trop = $("#tc");
$trop.empty(); //清空
$.each(tcr,function(index){
$trop.append("<option>"+this.name+"</option>");
})
}
)
})
});
http://www.bejson.com/ JSON校验器
支持原创
第二步:写个Action类,这个Action类返回的就是你要查询数据库的信息。
第三步:配置action,与普通action一样的配置,但在返回页面的时候必须是新页面,而且这个页面必须是写JSON的表达式,只有这些表达式,不可重用。
第四步:写JS代码,发送JSON。
具体例子:
第一:action类:
/**
*jquery的JSON技术获取数据
* 通过部门编号获取教师
*@authod陈海文
* */
public class Teacher extends ActionSupport{
private static final long serialVersionUID = 8569590764453392595L;
private int id;
private List<com.heaven.Enpty.Teachers> list;
private TeacherCourseServiceimpl terchercourseserviceimpl;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public TeacherCourseServiceimpl getTerchercourseserviceimpl() {
return terchercourseserviceimpl;
}
public void setTerchercourseserviceimpl(
TeacherCourseServiceimpl terchercourseserviceimpl) {
this.terchercourseserviceimpl = terchercourseserviceimpl;
}
public List<com.heaven.Enpty.Teachers> getList() {
return list;
}
public void setList(List<com.heaven.Enpty.Teachers> list) {
this.list = list;
}
public String execute() throws Exception {
list=this.terchercourseserviceimpl.findTeacherByTdept(id);
return SUCCESS;
}
}
第二步:
配置Action
<action name="te" class="com.heaven.action.Teacher">
<result name="success">/jsp/MyJsp.jsp</result>
</action>
(可以直接访问Action来调试,比如这个action配置的访问:http://。。。。。。/te.action)
第三步:
写JSP
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
([{name:'---请选择老师---'}
<s:iterator var="t" value="list">
,{name:'${t.tname}'}
</s:iterator>]
)
就是传说中的JSON表达式:这里的意思是【】表示数组,里面有很多个{},每个{}就是JSON表达式。其中{键:'值'},这样的话在JS里面就可以直接找键就取出值来。其中list是action类得返回数据的对象引用,也就是SetList()方法的List名字,其实就是字段名。注意要赋值才有效,我这里是查询数据库得List类型的list=this.terchercourseserviceimpl.findTeacherByTdept(id);最外层大口号是因为JS里面要返回JSON格式数据变为对象,没口号将得不到对象,而是未定义的字段
第四步:写JS
$(function() {
//触发select改变状态的事件
$("#depart").change(function() {
//初始一个HTTP请求,返回JSON数据
$.get("te.action",
{id:$(this).val()},//JSON的表达式参数,id对应着Action里的那个参数Id
function(data){ //回调函数返回
var tcr = eval(data);//把JSON格式的数据变为一个对象
var $trop = $("#tc");
$trop.empty(); //清空
$.each(tcr,function(index){
$trop.append("<option>"+this.name+"</option>");
})
}
)
})
});
http://www.bejson.com/ JSON校验器
支持原创