hello.html
Эхний мөрөнд xmlns:m=http://www.seasar.org/maya S2JSF-ийн namespace-ийн тодорхойлолт юм. Үүнийг заавал тодорхойлж өгнө.
m:extends="/WEB-INF/layout/layout.html энэ нь layout(хуудасны загвар)-ийг тодорхойлно. Үүнд: header, footer, body, menu зэрэг хуудсуудыг нийлүүлсэн хуудас юм. 7-р мөрөнд байгаа “layoutTitle” нь layout.html хуудсанд хуудасны гарчигийг харуулахад ашиглана. Үндсэн хуудасруу параметр дамжуулахад f:param тагийг ашиглана. 8-10р мөр нь үндсэн хуудсын body хэсэгт харагдах зүйлс. 9-р мөрний #{} гэсэн хэсэгт хувьсагчийг тавьж өгвөл түүний утгыг HTML хуудсанд харуулах болно. Span тагийг ашиглана.
layout.html
4-р мөрөнд байдаг CSS файлыг дуудсан байна. Inject аттрибутад s:link-ийг олгосноор дуудагдах юм.
5-р мөрөнд түрүүний хуудаснаас дамжуулсан хуудасны гарчигыг харуулах хэсэг байна. S угтвар нь WEB-INF/classes/jsf.dicon(эсвэл WEB-INF/src) гэсэн файлд тодорхойлогдох юм. S угтвар нь http://www.seasar.org.jsf URI-тай холбогдоно.
17-р мөр нь их биеийн хэсгийг харуулна.
jsf.dicon (Энэ жишээний)
Layout.html-ийн 10-р мөрөнд хуудасны толгой хэсгийг оруулж байгаа ба доор толгой файлыг үзүүлсэн байна. Мөн зураг хэрхэн дуудсаныг харна уу.
header.html
menu.html
6-р мөрөнд байгаа линкний action-д hello гэж байна. Үүнийг үсрэх хуудсыг WEB-INF/faces-config.xml файлд тодорхойлж өгнө.
faces-config.xml
add.html
10-р мөр нь алдааг гаргах үйлдэл. 11-р мөрөндэх Input tag нь javabean-ий property-тэй холбогдсон байна. Оролтын утга нь Javabean-ий Property-д олгогдох юм. Доор байгаа examples/jsf/dicon/add.dicon файлд addDto-г тодорхойлж өгнө.
add.dicon
instance аттрибут нь request гэж тодорхойлогдсон нь addDto нь request байдлаар зохион байгуулагдана.app.dicon файлын root элементэд add.dicon файлыг оруулж өгнө.
app.dicon
14-р мөрөнд байгаа код нь товчлуурыг дарахад addAction-ий calculate() method-ийг дуудна.
add.dicon файлд addAction-ийг тодорхойлно.
add.dicon
package examples.jsf.action;
public interface AddAction {
public String calculate();
}
package examples.jsf.action.impl;
import examples.jsf.action.AddAction;
import examples.jsf.dto.AddDto;
import examples.jsf.logic.AddLogic;
public class AddActionImpl implements AddAction {
private AddDto addDto;
private AddLogic addLogic;
public void setAddDto(AddDto addDto) {
this.addDto = addDto;
}
public void setAddLogic(AddLogic addLogic) {
this.addLogic = addLogic;
}
public String calculate() {
int result = addLogic.calculate(addDto);
addDto.setResult(result);
return null;
}}
Оруулсан утгыг хүлээн авахын тулд addDto-ий setter method-ийг тодорхойлж өгнө. S2JSF нь ямар нэг property-ийн setter method тодорхойлогдсон эсэхийг шалгадаг. request аттрибутууд, parameter-үүд, session аттрибутууд, мөн S2Containter-үүдэд ямар нэгэн хувьсагчийн property-тай адил property байвал S2JFS нь шалгаад хэрвээ таарч байвал S2JSF нь автоматаар setter method-ийг нь дуудаж хувьсагчид утга олгоно.
Property-ийн төрөл нь Interface байхад addLogic-ийн хувьсагч нь хаана нэгтээ тодорхойлогдоогүй бол S2Container нь автоматаар Interface-ийн хэрэгжүүлэгч класст автоматаар set хийдэг.
add.dicon файлд AddLogic хэрэгжүүлэгч классыг тодорхойлсон байна.
MethodBinding-аар дуудагдсан method нь null-ийг буцаана. Энэ нь өөрлүүгээ буцна.
forEachList.html
8аас 24-р мөр хүртэл span элементийн forEach-ийг ашиглаж давталт хийж байна. Items аттрибут нь хэрхэн давтахыг, var аттрибут давталтанд дамжуулах утгаруу хандсан хувьсагчийн нэр, varIndex аттрибут нь давталтыг хянах хувьсагч гэж тус тус заасан байна.
Var аттрибут-д тодорхойлсон хувьсагчийн нэрийн property-оор давталтанд элементийн утгыг авна.
Var аттрибут-д тодорхойлсон хувьсагчийн нэрийн property-оор давталтанд элементийн утгыг авна.
Жишээ нь: 11 болон 12 мөрүүдэд, давталтандах элементүүдийн нэр болон key-ийн утгыг авсан байна.
13-р мөр, href аттрибут болон action аттрибутуудыг тодорхойлсон байна. Ийм тохиолдолд, ажиллаж байх явцад href-ийг алгасна. href аттрибут нь хэдийгээр тийм боловч web browser-оос уг html файлыг нээхэд ямар нэг хуудасруу үсрэнэ.
14-р мөр, param-ийг хэрэглэж параметрыг дамжуулж байна. Параметр нь дамжуулах URI-лүү дамжих болно.
18-р мөр, action аттрибут болон onclick аттрибуттай товчлуурын жишээг харуулсан байна.
20-р мөр, товчлуур дарагдсан үед параметрыг хуудасруу дамжуулна.
13-р мөр, href аттрибут болон action аттрибутуудыг тодорхойлсон байна. Ийм тохиолдолд, ажиллаж байх явцад href-ийг алгасна. href аттрибут нь хэдийгээр тийм боловч web browser-оос уг html файлыг нээхэд ямар нэг хуудасруу үсрэнэ.
14-р мөр, param-ийг хэрэглэж параметрыг дамжуулж байна. Параметр нь дамжуулах URI-лүү дамжих болно.
18-р мөр, action аттрибут болон onclick аттрибуттай товчлуурын жишээг харуулсан байна.
20-р мөр, товчлуур дарагдсан үед параметрыг хуудасруу дамжуулна.
forEachResult.html
2-р мөрөнд action аттрибутаар initialization method-ийг заасан байна. Action класс нь доор тодорхойлогдсон байна.
package examples.jsf.action.impl;
import java.util.List;
import examples.jsf.action.ForEachResultInitAction;
import examples.jsf.dto.ForEachDto;
public class ForEachResultInitActionImpl implements ForEachResultInitAction {
private int index;
private List forEachDtoList;
private ForEachDto forEachDto;
public void setIndex(int index) {
this.index = index;
}
public void setForEachDtoList(List forEachDtoList) {
this.forEachDtoList = forEachDtoList;
}
public ForEachDto getForEachDto() {
return forEachDto;
}
public String initialize() {
forEachDto = (ForEachDto) forEachDtoList.get(index);
return null;
}}
examples/jsf/dicon/foreach.dicon файлд forEachDtoList-ийг тодорхойлно.initMethod таг-г ашиглаж дурын method-ийг дуудаж болно.
initialize() method-д forEachDto property-ийн index-ийг set хийсэн байна. Initialize() method гүйцэтгэсний дараагаар S2JSF нь автоматаар forEachDto property-д утгыг Set хийнэ. Дараах байдлаар, тогтмолоор request -ийн оронд session-ийг set хийж болно.
public static final String property name_EXPORT = "session";
public static final String property name_EXPORT = "session";
0 件のコメント:
コメントを投稿