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.
3
Erkan 20 październik 2012, 12:08

2 odpowiedzi

Najlepsza odpowiedź

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 w struts.properties (domyślnie szablon)
0
Roman C 4 styczeń 2018, 20:47

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źć.

0
Csaba Molnár 29 kwiecień 2019, 12:27