..
Ево пример веб апликације, видимо прецизније како да се примени контролер и ЈСП које вам омогућавају да додате књигу колекцију књига.
Пре свега, у нашој веб.кмл конфигуришете ВебАпплицатионЦонтект и мапирање ДиспатцхерСервлет:
<- ПРОЛЕЋЕ -> <цонтект-парам> <парам-наме> цонтектЦонфигЛоцатион </ парам-наме> <парам-валуе> цласспатх *: апплицатионЦонтект.кмл </ парам-валуе> </ Контекст-парам> <листенер> <листенер-цласс> орг.спрингфрамеворк.веб.цонтект.ЦонтектЛоадерЛистенер </ слушалац класе> </ Слушалац> <- МВЦ -> <сервлет> <сервлет-наме> пролеће-МВЦ </ сервлет-наме> <сервлет-цласс> орг.спрингфрамеворк.веб.сервлет.ДиспатцхерСервлет </ сервлет класе> <лоад-он-стартуп> 1 </ Лоад-на-покретања> </ Сервлет> <сервлет-маппинг> <сервлет-наме> пролеће-МВЦ </ сервлет-наме> <урл-паттерн> / акција / * </ урл-паттерн> </ Сервлет-мапирање>
Без тог ми стварамо нашу књигу класе:
публиц цласс Боок {
@ Величина (мин = 1, порука = "имена поља не може бити празан")
@ Паттерн (регек = "[А-За-з0-9 _]+", порука =" име поља може да садржи само слова ")
привате Стринг име;
@ НотНулл
@ Величина (мин = 1, порука = "Аутор пољу не може бити празан")
@ Паттерн (регек = "[А-За-з']+", порука =" Аутор поље може садржати само слова ")
привате Стринг аутора;
ДатеТимеФормат @ (образац = "дд / мм / ииии")
@ НотНулл (порука = "Датум издавања пољу не може бити празан")
приватне Датум датаДиУсцита;
/ / Геттерс и креатори .................
//..........
}
Као што можете видети нашу књигу има три атрибута:
@ Контролер
{Публиц цласс БоокЦонтроллер
Листа личних <Боок> Бооклист;
јавни БоокЦонтроллер () {
Бооклист <Боок> = нев АрраиЛист ();
}
/ / Прикажи креирање страница
@ РекуестМаппинг (вредност = "/ цреатеБоок" метход = РекуестМетход.ГЕТ)
Стринг добродошли (модел модела) {
модел.аддАттрибуте ("књиге", нова књига ());
повратак "/ књига / цреатеБоок";
}
/ / Провера да ли постоје грешке при провери ваљаности, а ако не, књига додаје на листу
@ РекуестМаппинг (вредност = "/ Цреате", метод = РекуестМетход.ПОСТ)
Стринг стварају (боок @ ваљан, БиндингРесулт резултат) {
ако је (ресулт.хасЕррорс ()) {
повратак "/ књига / цреатеБоок";
}
боокЛист.адд (књига);
повратак "преусмеравање: ГетВиев";
}
/ / Прикажи листа књига
@ РекуестМаппинг (вредност = "/ ГетВиев")
Стринг поглед (модел модела) {
модел.аддАттрибуте ("Бооклист", Бооклист);
повратак "/ књига / поглед";
}
}
сада видимо два ЈСП:
1) ВЕБ-ИНФ/јсп/боок/цреатеБоок.јсп
<% @ Паге лангуаге = "Јава" цонтентТипе = "тект / хтмл; цхарсет = утф-8" пагеЕнцодинг = "утф-8"%>
<% @ Таглиб префикс = "облик" ури = "хттп://ввв.спрингфрамеворк.орг/тагс/форм"%>
<ДОЦТИПЕ ХТМЛ ПУБЛИЦ "- / / В3Ц / / ДТД ХТМЛ 4.01 Транситионал / / ЕН" "хттп://ввв.в3.орг/ТР/хтмл4/лоосе.дтд">
<хтмл>
<хеад>
<мета хттп-екуив="Цонтент-Типе" цонтент="тект/хтмл; цхарсет=УТФ-8">
<титле> Додај књигу </ титле>
</ Хеад>
<боди>
<форм:форм цоммандНаме="боок" МЕТХОД="ПОСТ" ацтион="цреате">
<фиелдсет>
<легенд> Додај књигу </ легенд>
<п>
<форм:лабел фор="номе" патх="номе"> Име </ форм: лабел> <бр/>
<форм:инпут патх="номе" /> <форм:еррорс патх="номе" />
</ П>
<п>
<форм:лабел фор="ауторе" патх="ауторе"> Аутор </ форм: лабел> <бр/>
<форм:инпут патх="ауторе" /> <форм:еррорс патх="ауторе" />
</ П>
<п>
<форм:лабел фор="датаДиУсцита" патх="датаДиУсцита"> Времену </ форм: лабел> <бр/>
<форм:инпут патх="датаДиУсцита" /> <форм:еррорс патх="датаДиУсцита" />
</ П>
<п>
<инпут типе="субмит" валуе="Цреа Либро" />
</ П>
</ ФИЕЛДСЕТ>
</ Облик: форм>
</ Боди>
</ ХТМЛ>
2) ВЕБ-ИНФ/јсп/боок/виев.јсп
<% @ Паге лангуаге = "Јава" цонтентТипе = "тект / хтмл; цхарсет = утф-8" пагеЕнцодинг = "утф-8"%>
<% @ Таглиб УРИ = "хттп://јава.сун.цом/јсп/јстл/цоре" префикс = "Ц"%>
<ДОЦТИПЕ ХТМЛ ПУБЛИЦ "- / / В3Ц / / ДТД ХТМЛ 4.01 Транситионал / / ЕН" "хттп://ввв.в3.орг/ТР/хтмл4/лоосе.дтд">
<хтмл>
<хеад>
<мета хттп-екуив="Цонтент-Типе" цонтент="тект/хтмл; цхарсет=УТФ-8">
<титле> Списак књига </ титле>
</ Хеад>
<боди>
<п>
<а хреф="цреатеБоок"> Унесите још једну књигу </ а>
</ П>
<фиелдсет>
Књиге <легенд> убаци </ легенд>
<ц:форЕацх итемс="${боокЛист}" вар="боок">
Име: <ц:оут валуе="${боок.номе}" /> <бр/>
Аутор: <ц:оут валуе="${боок.ауторе}" /> <бр/>
Године: <ц:оут валуе="${боок.датаДиУсцита}" /> <бр/>
<хр/>
</ Ц: фореацх>
</ ФИЕЛДСЕТ>
</ Боди>
</ ХТМЛ>
На крају видимо садржај ВЕБ-ИНФ/спринг-мвц-сервлет.кмл:
<- Омогућите Коментари -> <мвц:аннотатион-дривен /> <- Контролер -> <беан цласс="ит.мрвебмастер.мвц.БоокЦонтроллер" сцопе="сессион"/> <- ПОГЛЕД ресолвер -> <беан ид="виевРесолвер" цласс="орг.спрингфрамеворк.веб.сервлет.виев.ИнтерналРесоурцеВиевРесолвер"> <проперти наме="виевЦласс" валуе="орг.спрингфрамеворк.веб.сервлет.виев.ЈстлВиев" /> <проперти наме="префик" валуе="/ВЕБ-ИНФ/јсп/" /> <проперти наме="суффик" валуе=".јсп" /> </ Бин>
| |
Линук (курс)
Комплетан водич за опен-соурце систем. Од 49 €. |
| |
ПХП (курс)
Цео курс за креирање динамичких веб сајтова. Од 49 €. |
| |
Руби и Руби он Раилс (курс)
Израду софтвера и веб апликација са рубином и РОР. Од 39 €. |