Loading...
supersane avatar supersane 234 Точки

[Java Web Development] Spring MVC Issue

Здравейте, решавам си домашната от Spring MVC и се случва нещо много странно. За пръв път се захващам със Spring MVC проект, и още правя някои неща на сляпо от конфигурационна гледна точка, докато се ориентирам. Значи нали при създаването на Spring MVC проект автоматично се създава home страница, която отговаря на "/" url. При мен обаче това не се получава, и тествах няколко различни проекта. Ако създам проект с имената "test", "bank" работи default-ната страница, ако използвам име за проекта от сорта на "WebBankingMvc", "BankingMvc", не ми зарежда "/" директорията. Има нещо нередно, но не мога да го открия. Под "не ми се получава" имам предвид, че при опит да достъпя "localhost:8085/WebBankingMvc/" ми казва, че не е открит ресурс(The requested resource is not available.)

Ето и част от файловете ми:
servlet-context.xml
WebBanking(Interface)
WebBankingService(Implementation)
BankController
web.xml
pom.xml

едит: Още един въпрос. От видеото на лекцията не ми стана ясно как се предава информацията от jsp-то към самия controller? Примерно във view-то имаше таблица за попълване на информация за студент, но реално погледнати те са просто стрингове. Как в метода на контролера като параметър се подава цял Student, къде се създава и подава този обект? Също така как може да се достъпва останалата информация, която върви с изпратения request?

Тагове:
0
Java Web Development 08/04/2016 00:18:10
RoYaL avatar RoYaL Trainer 6849 Точки

И аз ще стрелям на сляпо, тъй като Spring има хиляди начни да се конфигурира и този който ползваш, не е този, който аз ползвам.

В първия XML пробвал ли си да смениш базовия пакет да тговаря на casing-а на проекта - <context:component-scan base-package="bg.jwd.webbanking" />

0
supersane avatar supersane 234 Точки

Ами първо ги бях разхвърлял, в отделни пакети, предположих да не би заради това да не намира, и ги събрах по следния начин: цък, но пак нищо. Ти това ли имаше предвид?

0
RoYaL avatar RoYaL Trainer 6849 Точки

Не, имах предвид, че базовия ти пакет е този, който деплойваш най-вероятно. Съответно него трябва да го кръстиш с големи букви (ако това ти е крайната цел)

0
supersane avatar supersane 234 Точки

Да, там е бил проблема. Името на проекта беше "WebBankingMvc", а на пакета "bg.jwd.webbanking", следователно трябваше да търся на името на пакета(webbanking), а не на проекта. :)

0
Jinjaar avatar Jinjaar 348 Точки

На първият ти въпрос: Зависи как си кръстил главните пакети, мойте са bg.softuni.socialnetwork и главният ми route е localhost:8080/socialnetwork/.

На вторият ти въпрос : Controllera комуникира с JSP през Model към който закачаш данните който искаш. 

Пример:

RequestMapping(value = UrlConstants.USER_HOME_PAGE , method = RequestMethod.GET)
    public String getUserInfo(Model model) {
        String user =UserUtils.getUser().getUsername();
         UserProfile currentUser = userService.getUsers(user).get(0);
         model.addAttribute("user",currentUser);

        return "home";
    }

Така закачам currentUser( UserProfile ) object към model-a като в JSP можеш да достъпиш информацията за него с ${{ user.username}} примерно.

1
08/04/2016 00:36:40
supersane avatar supersane 234 Точки

Разбрах примера ти за втория ми въпрос. А как controllerа комуникира с JSP в обратна връзка(JSP -> Controller). В демото от лекцията в JSP-то има формичка за попълване на информация за студент. След натискане на submit бутона, как се достъпва тази информация от controllera, за да създаде обект от тип Person и да го добави в ArrayList-а със студенти. Защото в демото се вижда как се прави метод, който е мапнат на дадено url и приема като параметър обект от тип Person, а къде се създава и инциализира този обект? 

За първия ми въпрос, все още имам проблема и ми дава, че не може да открие ресурса, и това ме забива да си доразвия домашното, сега ще продължа да мъча от къде идва проблема. Благодаря за примера ти на втория ми въпрос, доста ми се изясниха нещата.

edit: да беше прав и за първия ми върпос, проекта ми се казва WebBankingMvc, и на този адрес не мога да го достъпя, но пакета ми е bg.jwd.webbanking и когато напиша localhost:8085/webbanking, вече го достъпвам. Супер, сега мога да продължа по писането на домашната. Благодаря отново!

0
08/04/2016 09:26:33
naskoni avatar naskoni 68 Точки

Здравей,

В jsp-to, имената на input полетата отговарят на пропъртитата на класа Student и автоматично се сетват, защото в метода, който отговаря на submit (action="/uni/addStudentSave")  е обявено, че този клас е ModelAttribute:

public String addStudentSave(Model model, @ModelAttribute(value = "student") Student student)

и така в метода можеш да работиш с този обект.

2
supersane avatar supersane 234 Точки

Благодаря за отговора!

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.