`
chw0892
  • 浏览: 20955 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Aja+struts2+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校验器
  支持原创
1
2
分享到:
评论
2 楼 chw0892 2011-05-21  
{id:$(this).val()},//JSON的表达式参数,id对应着Action里的那个参数Id

id必须要set get 方法
1 楼 chw0892 2011-05-21  
注意了!哪个实体没加进去!我还有一个POJO,名字叫Teachers有:tid,tname等字段和相应的Get,Set方法,还有一个重写了toSting(){
  return tname;
}

相关推荐

Global site tag (gtag.js) - Google Analytics