Wyswietlanie Stringa w wielu liniach

0

Witam,

mam funkcje, ktora zwraca Stringa.

return supAudio + supVideo + supImage;

chcialbym, zeby kazda zmienna byla wyswietlana w nowej linii. jak to zrobic? probowalem kombinacji \n\r i \r\n, ale nic to nie daje. Dodam, ze string ten jest pozniej wyswietlany w Labelu Wicket.

Pzdr

0

W html uzywa sie
tak?

0

możesz dać <html> przed tekstem, wtedy label będzie działać jak byś pisał w html'u.

0

Dzieki za odpowiedzi. dalej jednak robie cos nie tak. probuje

return supAudio + "</br>" + supVideo + "</br>" + supImage ;

lub

return <html> + supAudio + "</br>" + supVideo + "</br>" + supImage + </html>;

ale wyswietla mi razem z tagami. any ideas?

0
magic1990 napisał(a)

return <html> + supAudio + "</br>" + supVideo + "</br>" + supImage + </html>;

inaczej:

return "<html>" + supAudio + "<br>" + supVideo + "<br>" + supImage;
</quote>
0

Nie wiem czy to ma znaczenie, ale obaj tworzycie zupelnie zly kod html.
a nie </br> a tym bardziej niedomkniete
. Poza tym, skoro to jest button w wickecie, czyli webappie, to na pewno nie mozna dodac w butonie <html> jak sugreuje ktos nade mna.

0

w sumie, nie przeczytałem dokładnie, że to wicket, z tym się nie spotkałem. Kod który dałem zadziała dla JLabela.

0

W zwykłym Labelu nawet jak umieszcza się
to i tak nic to nie da , po prostu traktuje się to jak zwykły tekst.

Trzeba użyć MultiLineLabel i wtedy możemy używać zarówno tag
jak i

</p>

Dokumentacja do MultiLineLabel:
<url>http://wicket.apache.org/docs/1.4/org/apache/wicket/markup/html/basic/MultiLineLabel.html
</url>

0

Albo można tak:
add(new Label("markup", "<h1>Hello!</h1>").setEscapeModelStrings(false));
Przydatne np do zrobienia kontrolki tłumaczącej xml z użyciem xslt dla cmsa.

0

Nie sprawdzałem, ale możesz spróbować na labelu dać setEscapableModelString(false).
donkey7 mnie wyprzedzil:)

0

a wiec zadzialczylo elegancko z MultiLineLabel. moj return wyglada nastepujaco:

return supAudio + "\n" + supVideo + "\n" + supImage ;

probowalem tez cos z
ami dzialac, ale cos sie krzaczylo i wyswietlalo tagi. nie zaglebialem sie za bardzo jak \n zadzialalo.

Dzieki za pomoc

Pzdr

0

MultiLineLabel wywołuje Strings.toMultilineMarkup(getDefaultModelObjectAsString()). Wystarczy zajrzeć i zobaczyć że to otacza tekst tagami

i w miejsce pojedynczych \n daje
a w miejsce wielokrotnych daje </p>

.

W getDefaultModelObjectAsString() znajduje się kod:

				// If we should escape the markup
				if (getFlag(FLAG_ESCAPE_MODEL_STRINGS))
				{
					// Escape HTML sensitive characters only. Not all none-ascii chars
					return Strings.escapeMarkup(modelString, false, false).toString();
				}
				return modelString;

a więc i tak trzeba dać setEscapeModelStrings(false) jeśli chce się umieścić jakieś tagi.

Polecam poczytać źródła Wicketa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1