Софтуерно Инженерство
Loading...
tobieski avatar tobieski 6 Точки

Java Blog : Проблем с Кирилицата и Проблем с Валидация

Здравейте колеги, 

Имам 2 проблема при правенето на блога с java и spring boot. 

1. При запис на нов article в базата, кирилицата ми е счупена. Излиза ми по следния начин ??????. Порових из форума и гугъл, но всичко, което намирам е да си погледна базата дали е сетната на utf_8_general_ci, което е направено от скелета. Другото е добавяне на <property> във файл web.xml, който при мен липсва ( предполагам заради spring boot ). 

2. Анотацията @NotNull не работи (поне при мен). Използвам я в ArticleBindingModel и все пак в базата ми се записват празни статий с празни заглавия. Открих, че има 2 такива анотации идващи от :

import com.sun.istack.internal.NotNull;

Както и от тук :

import javax.validation.constraints.NotNull;

И с двете пробвах и не стана. След това погледнах UserBindingModel-a, който идва наготово от скелета. Премахнах валидацията от html-a. Тоест махнах полетата required от input за регистрационната форма и пробвах отново. За жалост в базата ми се записваха User-и с празен email и най - вероятно хеширана празна парола. Ако някой има идея, ще се радвам да я сподели. Благодаря предварително !

0
Софтуерни технологии 06/04/2017 20:53:08
vancho avatar vancho 430 Точки

@NotNull го замени с @Size(min = 1). Така трябва да сработи. Относнл емейла на user-а може полето в формата да не се мапва. Или не си настроил секюритито на spring.

0
08/04/2017 09:53:14
tobieski avatar tobieski 6 Точки

Привет, 
Изпробвах анотацията за @Size(min=1), но пак успявам да запиша празни данни в базата ( говоря за context и title на съответната статия). Явно проблема ми е някъде в binding models и мапването, както си споменал по - горе.
Успях да открия и да реша проблема с кирилицата, като просто добавих ( ?useUnicode=yes&characterEncoding=UTF-8 ) на края на Database connection string във файла application.properties.
 

1
vancho avatar vancho 430 Точки

Как взимаш данните от html-a към спринг. С взимаш полетата едно по едно или с @ModelAttribute. Дебъгни преди в пост рекуеста да запишеш модела, за да видиш  да ли да ти пълни данните.

п.с. Пробвай с двете анотации заедно.

@NotNull

@Size(min = 1)

0
08/04/2017 16:48:44
Xadera avatar Xadera 5 Точки

Трябва да сложиш валидация в самият Article Controller.

Нещо от сорта на:

if(articleBindingModel.getTitle().length() < 3 || articleBindingModel.getContent().length() < 10)
{
    return "redirect:/article/create";
}

 

Отделно може да сложиш валидация и в bootstrap-a която казва на user-a, че е идиот.

Ще ти трябва подобна валидация и за edit.

0
17/04/2017 14:22:06
dimo.ivanov avatar dimo.ivanov 35 Точки

За кирилицата: Добавянето на 

&useUnicode=yes&characterEncoding=UTF-8

помогна, мерси! Пиша и да коригирам, че ? всъщност е &, щото аз и там си блъсках малко главата :)

0
10/08/2017 14:45:51