Stworzyłem nowy szablon motywu dla Struts 2.
Więc umieściłem następujący kod w moim struts.xml
:
<constant name="struts.ui.theme" value="mynew" />
Gdzie jest ten katalog szablonów, abym mógł w nim umieścić nowy motyw. Próbowałem wielu lokalizacji i żadna z nich nie działała.
java.io.FileNotFoundException: Template /template/mynew/actionerror.ftl not found.
2 odpowiedzi
Struts 2 najpierw szuka szablonu tagu w nazwie webroot/template/theme
. A jeśli nie znajdzie tam szablonu, użyje domyślnego szablonu, który jest częścią podstawowego słoika Struts 2. Więcej informacji o tej funkcji znajdziesz w artykule Wczytywanie szablonu.
Katalog szablonów można wybrać za pomocą kilku różnych reguł, w następującej kolejności:
- Atrybut
templateDir
w określonym tagu- Atrybut o zasięgu strony o nazwie
templateDir
- Atrybut o zasięgu żądania o nazwie
templateDir
- Atrybut o zasięgu sesji o nazwie
templateDir
- Atrybut o zasięgu aplikacji o nazwie templateDir
- Właściwość
struts.ui.templateDir
wstruts.properties
(domyślnie szablon)
Główną wskazówką w odpowiedzi Romana C na umieszczenie szablonów we właściwym folderze jest to, że wspomina on o webroot. Nigdzie indziej tego nie widziałem. Na tej podstawie przedstawiam przykład roboczy.
Mój projekt jest w pliku EAR, który wygląda tak w środku:
- mój_projekt_ejb.jar
- mój_projekt.war
- folder lib z wymaganymi słoikami
Aby szablony działały, na najwyższym poziomie w pliku WAR powinien znajdować się folder „template” (lub cokolwiek innego, co go skonfigurujesz). W tym celu utwórz folder z nazwą swojego motywu.
Ponieważ mój projekt jest zbudowany za pomocą Maven, moje pliki FTL są w my_web_project/src/main/webapp/template_dir_name/theme_name/my_field_template.ftl
Mam nadzieję, że komuś się to przyda. Zajęło mi trochę czasu, aby to rozgryźć.
Podobne pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].