昨日のAjaxの練習はこんくらいまでやってみようかな

こう書けたら良いなぁって思って書いたやつだから、実現可能性は未知数。呼び出しのコンポーネントを取得して、メソッドを呼び出してるあたりがAjax。でも非同期だから呼び出しと同時に戻り値受け取るのは無理があるんじゃ?(笑)遅延実行を実現できるんだから、遅延戻り値返しなんてのも試してみるのがおもしろそうだ。そういえばFlash Remotingの呼び出しとコールバックでも同じような事やったような?結局呼び出しと戻り値の受け取りは違う関数を定義するしかなかったですけど、もうちょっと突っ込んでやってみよう。


//------ Java Script ------
<script type="text/javascript">
<!--
function getMakerList() {
var makerAction = getComponent('MakerAction');
var makerList = makerAction.getMakerList();

createListBox(document.forms[0].makerList, makerList);
}

function getModelList(makerCode) {
var modelAction = getComponent('ModelAction');
var modelList = modelAction.getModelList(makerCode);

createListBox(document.forms[0].modelList, modelList);
}
//-->
</script>

//------ Java ------
@ResponseType(ResponseType.JSONOption)
public class Maker {
@JSONProperty(property="value")
private String makerCode;

@JSONProperty(property="text")
private String makerName;

/* setter/getter省略 */
}


public class MakerAction {
private CarService carService; //injection
public Object getMakerList() {
Maker[] makerList = carService.getMakerList();
return makerList;
}
}

public class ModelAction {
private CarService carService; //injection
public Object getModelList() {
Model[] modelList = carService.getModelList();
return modelList;
}
}

public CarService {
public Maker[] getMakerList() {
//dao access
}
public Model[] getModelList(String makerCode) {
//dao access
}
}