java中汉字按拼音排序
import java.util.Comparator;
class PinYinComparator implements Comparator<String> {
public int compare(String s1, String s2) {
return ((java.text.RuleBasedCollator)java.text.Collator.
getInstance(java.util.Locale.CHINA)).compare(s1, s2);
}
}
但是在GWT中不支持java.text...
改成这样
new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
return javascriptSort(o1, o2);
}
private native int javascriptSort(Object a, Object b)/*-{
return a.localeCompare(b);
}-*/;
}
2010年10月23日星期六
2010年10月22日星期五
在GAE上简单实现了一个淘宝客
在网上无意搜到一个用Ext实现的淘宝客,恩 ,咱用GWT做一个车轮
下了淘宝的 SDK for java就开干 参考API文档按部就班
在淘宝的沙箱里测试,很顺利,乘胜前进,到正式环境下测试
问题来了
invalid signature
网上搜了一通,有说时间戳不对,果不其然,GAE使用的是标准时间,整整差了8小时,遂在获得的当前时间上加了8小时,OK
invalid signature 可能的另一个原因是APP_KEY 或 APP_SERCET不正确,仔细检查
调用 taobao.item.get
1 TaobaoClient client=new DefaultTaobaoClient(TaobaokeConstant.SANDBOX_URL, TaobaokeConstant.APP_KEY, TaobaokeConstant.APP_SERCET);
2 ItemcatsGetRequest req=new ItemcatsGetRequest();
3 java.util.Calendar c=java.util.Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
4 c.add(Calendar.HOUR, 8);
5 req.setTimestamp(c.getTime().getTime()) ;
6 req.setParentCid(new Long(0));
7 ItemcatsGetResponse response=client.execute(req);
8 return response.getItemCats();
调用 taobao.taobaoke.items.get 1 TaobaoClient client=new DefaultTaobaoClient(TaobaokeConstant.SANDBOX_URL, TaobaokeConstant.APP_KEY,TaobaokeConstant.APP_SERCET);
2 TaobaokeItemsGetRequest req=new TaobaokeItemsGetRequest();
3 req.setFields("num_iid,title,nick,pic_url,price,click_url,commission,commission_rate,commission_num,commission_volume,shop_click_url,seller_credit_score,item_location,volume,taobaoke_cat_click_url,keyword_click_url");
4 req.setCid(Long.parseLong(cid));
5 req.setNick(TaobaokeConstant.NICK);
6 req.setSort("commissionRate_desc");
7 TaobaokeItemsGetResponse response=client.execute(req);
8 return response.getTaobaokeItems(); 想用GAE JCache API 加入缓存以减轻压力,但屡试不行,从缓存中取 的时候报错没找到原因 改用自己写的缓存,然后用App Engine Cron 服务管理缓存 corn.xml 1 <?xml version="1.0" encoding="UTF-8"?>
2 <cronentries>
3 <cron>
4 <url>/cron/recache</url>
5 <description>Repopulate the cache every 1 hours</description>
6 <schedule>every 1 hours</schedule>
7 </cron>
8 </cronentries>
2010年10月20日星期三
GWT POST 提交页面
GWT POST 提交页面
将所有参数以&分隔放入builder.setRequestData中
01 RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, BASIC_URL);
02 builder.setHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
03 builder.setRequestData("chartSWF=" + be.getSelectedItem().getType() + ".swf&chartId=" + be.getSelectedItem().getType() + "&strXML=" + generateXml(entry));
04 builder.setCallback(new RequestCallback(){
05 public void onError(Request request, Throwable exception) {
06 chart.removeAll();chart.addText("出错啦");
07 }
08 public void onResponseReceived(Request request, Response response) {
09 if(200 == response.getStatusCode()){
10 chart.removeAll();
11 chart.addText(response.getText());
12 chart.layout();
13 }else{
14 chart.removeAll();chart.addText("出错啦");
15 }
16 }
17 });
18
19 try {
20 builder.send();
21 } catch (RequestException e) {
22 e.printStackTrace();
23 }
参考:http://blog.csdn.net/leoyunfei/archive/2008/12/26/3611565.aspx
订阅:
博文 (Atom)