2006年 4月 01日 土曜日
private static XhtmlHelper helper = new XhtmlHelper();
public void encodeEnd(FacesContext context, UIComponent component)
throws IOException {
ResponseWriter writer = context.getResponseWriter();
//shale remoting resource retrieval
helper.linkJavascript(context, component, writer,
Mechanism.CLASS_RESOURCE, "/META-INF/r-dir/yuta.js");
<managed-bean>
<managed-bean-name>c_request_handler</managed-bean-name>
<managed-bean-class>クラスバス</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>name</property-name>
<value>#{param.name}</value>
</managed-property>
</managed-bean>
private static XhtmlHelper helper=new XhtmlHelper();
public void encodeBegin(FacesContext context, UIComponent component)
throws IOException {
ResponseWriter writer = context.getResponseWriter();
// コールバック用のストリングを作ります
// "c_request_handler というのは、上のfaces-config中で指定した managed bean
// の名前です。
String callBackString = helper.mapResourceId(context,
Mechanism.DYNAMIC_RESOURCE,
"/c_request_handler/handleRequestMethod");
// この後、callBackString をjavascript で例えばボタンの onClick で別の
// function() を呼んでその中で XmlHttpRequest で送るための URL として
// 指定したりします
setName()、
getName() は必要です。そしてレンダラー中で書いたメソッド
handleRequestMethod()でgetName()とすれば
http://ほにゃらら/ほげほげ/handleRequestMethod?name=yoshida
なんていうリクエストがきたら Shale が自動的に値を返してくれます。
private static ResponseFactory factory = new ResponseFactory();
.........
public void handleRequestMethod() {
FacesContext context = FacesContext.getCurrentInstance();
..........
ResponseWriter writer = factory.getResponseWriter(context, "text/html");
writer.startElement(.................);
..........
}
Today's Page Hits: 36