部落客廣告聯播

2010年1月11日 星期一

JSF/Facelet中使用JSTL

在JSF內使用Facelet並要使用JSTL,要注意:

JSTL的URI是 http://java.sun.com/jstl/core,
不能寫成http://java.sun.com/jsp/jstl/core

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
"><html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich" 
xmlns:c="http://java.sun.com/jstl/core">
.....(略)

2010年1月3日 星期日

Apache HttpClient 4.x版

新的HttpClient 4.x版(API)在使用上與舊有的3.x版似乎有很大的差異,例如HTTP Post表單資料要設定form parameter時的用法:








//HttpClient 3.x
//......
HttpPost post = new HttpPost( URL );
post.getParams().setParameter("input1", "val1");
HttpResponse response=httpClient.execute(post);
//.....


//HttpClient 4.x
//......
HttpPost post = new HttpPost( URL );
List formparams = new ArrayList();
formparams.add(new BasicNameValuePair( "input1", "val1" ));
UrlEncodedFormEntity postEntity =
new UrlEncodedFormEntity(formparams, "UTF-8");
post.setEntity(postEntity);
HttpResponse response=httpClient.execute(post);
//.....


4.x似乎在資料結構與使用上繁雜許多,除此之外,還有許多不同之處,詳見
http://hc.apache.org/httpcomponents-client/tutorial/html/
然而在4.x版本如上使用3.x的寫法,跑得起來嗎?答案是可以,但是非常不幸的某些加進去的parameter會不見(到底是被其他parameter覆蓋掉還是內部運作時被誤刪掉不得而知), 所以建議使用4.x版還是參照著4.x的文件內的寫法來使用才好.....