3

Spring PetClinicサンプル アプリケーションを読んだとき、追加機能と変更機能を常に 1 つの JSP ファイルに入れ、式を使用現在${owner['new']}ページの要素をカスタマイズしていることがわかりまし

[]JSP (Spring) 環境での演算子の他の使用法はありますか?

コントローラー ファイルには、次のスニペットがあります。

@RequestMapping(value = "/owners/new", method = RequestMethod.GET)
public String initCreationForm(Map<String, Object> model) {
    Owner owner = new Owner();
    model.put("owner", owner);
    return "owners/createOrUpdateOwnerForm";
}
@RequestMapping(value = "/owners/{ownerId}/edit", method = RequestMethod.GET)
public String initUpdateOwnerForm(@PathVariable("ownerId") int ownerId, Model model) {
    Owner owner = this.clinicService.findOwnerById(ownerId);
    model.addAttribute(owner);
    return "owners/createOrUpdateOwnerForm";
}

JSP ファイルには次のスニペットがあります。

<h2>
    <c:if test="${owner['new']}">New </c:if> Owner
</h2>
4

2 に答える 2

4

により、次の[]ことが可能になります。

オブジェクトが Bean の場合 (ゲッターとセッターがある)、プロパティを取得します。

${car['type']}

car.getType();これは(またはフィールドが のcar.isType()場合)と同等です。typeboolean

オブジェクトが の場合、キーの値を取得しますMap

${carMap['Volvo']}

carMap.get('Volvo');これは、 が の場合と同等carMapですMap

オブジェクトがarrayまたはの場合、インデックスを取得しListます。

${cars[1]}

これは、cars[1]if carsis anarrayまたはcars.get(1)if carsis aと同等Listです。

詳細/ソース: http://docs.oracle.com/javaee/6/tutorial/doc/bnahu.html


編集:

あなたの質問の式 ( ${owner['new']}) は最初のケースに該当します。ペットクリニック アプリでは、Ownerクラスは のサブクラスでPersonある のサブクラスですBaseEntity。そしてBaseEntityメソッドがありますisNew()Ownerそのメソッドもあります)。

このように、スニペット${owner['new']}は と同等owner.isNew()です。

于 2013-06-15T03:27:23.157 に答える
0

次のコードを検討してください

bikesMap.put("honda","cbr250r");
bikesMap.put("yamaha","yzfr15");

request.setAttribute("bikesMap",bikesMap);
request.setAttribute("company","honda");

したがって、記述した場合、提供しているものは文字列リテラルであるため、コンテナは存在しないキーを見つけようとするため、${bikesMap["company"]評価されません。しかし、書くと、この EL は に評価されます。"cbr250r"[]"company"${bikesMap[company]}"cbr250r"

${bikesMap[compapny]}"cbr250r"という名前のリクエスト属性があり、 iecompanyの値が のキーであるため、 にcompany評価されます。"honda"bikesMap

${bikesMap["company"]}"cbr250r"という名前のキーがないため、 は に評価されません"company"

[]ドット演算子に対する演算子の利点は、リストと配列に効果的にアクセスできることです。書ける${bikesList["1"]}けど書けない${bikesList.1}

お役に立てれば

于 2013-06-15T16:37:46.157 に答える