论坛首页 Web前端技术论坛

ItemFileReadStore 的url是一个action,并且action的返回类型是json的,该如何接收呢?

浏览 2828 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (4)
作者 正文
   发表时间:2010-10-20   最后修改:2010-10-22
<div dojoType="dojo.data.ItemFileReadStore"   
                jsId="jsonStore" url="gridData.txt"> 
div> 


如果url是一个action,并且action的返回类型是json的,该如何接收呢?
运行代码:
一、Action 中的接收类及返回json:
public String getJsons(){
HttpServletResponse response=ServletActionContext.getResponse();//响应
response.setCharacterEncoding("UTF-8");
List li=null;
String entKey=ServletActionContext.getRequest().getParameter("outEntInfo");
String srhType=ServletActionContext.getRequest().getParameter("srhType");
if(entKey==null){
entKey="";
}
if(srhType=="MC"||srhType.equals("MC")){
li=this.managerfactory.getLedgeroutmanager().getEntByName(entKey);//对企业营业执照的查询
}
if(li==null){}
else{
System.out.println(li.size());
JSONArray ja = JSONArray.fromObject(listToJsonArray(li,srhType));
System.out.println(ja.size());
if(ja==null){}
String jsonStr="{identifier:name,items:";
jsonStr+=ja.toString();
jsonStr+="}";
//System.out.println(jsonStr);
try {
Writer writer = response.getWriter();
writer.write(jsonStr);
writer.flush();
writer.close();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return SUCCESS;
}
/**
* 把JSONObject包装array
*
* @throws ParseException
*/
@SuppressWarnings("null")
private JSONArray listToJsonArray(List<EnterpriseInfoView> rList,String srhType){// throws ParseException
JSONArray ja=new JSONArray();
try{
JSONObject jo = new JSONObject();
for(int i=0;i<rList.size();i++){
String entName="";
String entNO="";
if(srhType=="MC"||srhType.equals("MC")){//企业名称查询
entName=rList.get(i).getEntName();
jo.put("name", entName);

}
else{//企业营业执照查询
entNO=rList.get(i).getId();
jo.put("name", entNO);
}
ja.add(jo);
}
}
catch(Exception e){
e.printStackTrace();
}
return ja;
}
二、JSP页面:
<div dojoType="dojo.data.ItemFileReadStore" url="auto.do?type=test&srhType=MC"
        jsId="reloadableStore2" urlPreventCache="true" clearOnClose="true"
        >
        </div>
        <div dojoType="dijit.form.ComboBox" store="reloadableStore2" searchAttr="name"
         autocomplete="false" ignoreCase="true" hasdownArrow="false" searchDelay="1" pageSize="20">
        </div>
Struts。xml文件配置:
<action name="auto" class="LedgerAddOut">
    <result type="json" name="success"></result>
    </action>
三、运行 成功了,呵呵
   发表时间:2010-10-22  
无人回答  ,目前,也已成功运行。dojo combobox与dojo.data.ItemFileReadStore可以获得action的值,故将代码贴出。
结贴!
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics