Spring - rozprawadzanie widoków na katalogi

0

Próbuję, zrobić aby pliki .jsp dla pakietu np admin były w katalogu WEB-INF/pages/admin a dla pakietu setup w WEB-INF/pages/setup
https://github.com/Moorfox/BlogCreator To co próbuje zrobić w pliku mvc-dis-servlet.xml w tym projekcie lepiej zobrazuje wszystko. W ogóle ma to sens ?

0
  1. Karny k... za commitowanie targeta. Po co? o_O To samo z eclipsowym projektem i jakimiś śmieciami. Nie commituje się plików które są generowane automatycznie...
  2. Pisanie "pliki jsp" sugerują że używasz JSP a to bzdura. Pliki o których mówisz to szablony JSTL. Równie dobrze mógłbyś im nadać rozszerzenie html albo xhtml albo xml albo alamakota...
  3. Nazywanie kontekstu springa mvc-dis-servlet.xml sugeruje że ma to coś wspólnego z servletami, co jest bzdurą. Konfiguracje servletów to masz w web.xml i nigdzie więcej.
  4. Głupie komentarze podczas commita kiedys sie na tobie zemszczą jak będziesz czegoś szukał w historii repozytorium.
  5. To co zrobiłeś nie ma sensu, głównie dlatego że klepiesz bezmyślnie zamiast spróbować zrozumieć co te linijki kodu oznaczają. Więc teraz włącz na chwilkę myślenie i czytaj:
<property name="prefix" value="/WEB-INF/pages/admin/" />

Co my tu mamy? Otóż mamy jakiś prefix o pewnej wartości. Jak nie trudno sie domyślić oznacza to, że jeśli w kontrolerze będziesz tworzył widok o nazwie alamakota to Spring doda sobie do niego prefix (i suffix) i będzie szukał pliku pod ścieżką jaka mu z tego wyjdzie. To oznacza że zamiast tego twojego śmiesznego copy-paste wystarczyłby ci prefix

<property name="prefix" value="/WEB-INF/pages/" />

a w kontrolerze dawanie /admin/cośtam czy /setup/cośtam

0
  1. Wrzuciłem go przez przypadek
  2. Jednak używam pliki z rozszerżeniem .jsp jednak to szablony JSTL rozumiem, że mogę je również nazwać .dsadsa
 
    <servlet>
        <servlet-name>mvc-dis</servlet-name>
        <servlet-class>
           org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>mvc-dis</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

Jednak coś z servletu ma
4. Na razie głupie ale to zmienie. Bo zaczynam dopiero projekt
5. Właśnie, chce aby w kontrolerze dawać tylko coś tam, ze względu

 
   <context:component-scan base-package="com.moorfox.setup" />

   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/pages/setup/" />
      <property name="suffix" value=".jsp" />
   </bean>
   
      <context:component-scan base-package="com.moorfox.admin" />

   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/pages/admin/" />
      <property name="suffix" value=".jsp" />
   </bean>

Czy kontroler będzie znaleziony w pakiecie admin czy setup jeżeli w setup używaj prefix o wartości WEB-INF/pages/setup
Jeżeli znajdziesz go w moorfox.admin to w /WEB-INF/pages/admin , bo że mogę zrobić to twoją opcją to wiem
Ale nie chce podawać tego /setup/ lub /admin/ w kontrolerach
I to nie było copy-paste

0
  1. Wkleiłeś przecież kod z web.xml właśnie :D Jedno z drugim nie ma specjalnie nic wspólnego. Ot w web.xml masz tyle że to spring ma obsługiwać wszystkie requesty do /. Nazwij sobie springowy kontekst spring-context.xml i zobaczysz że wszystko nadal będzie działać... ;]
  2. Nie widzę jaką ci to robi różnicę za bardzo, szczególnie że nazwy nie będą sie mogły dublować więc i tak zawsze będziesz tam miał unikalny ciąg. Co za różnica czy będzie to /admin/cośtam czy samo cośtam? ;] Chyba tylko taka że trudniej ci się z tym będzie pracować, szczególnie pod eclipse. Bo IntelliJ potrafi jednym klikiem skakać do odpowiedniego widoku, a w eclipse będziesz ich sam szukał a jak będzie tych widoków kilkanaście to wątpię żebyś pamiętał gdzie który jest. Ale jak chcesz...
0
  1. Wkleiłem kod web.xml gdzie ten " org.springframework.web.servlet.DispatcherServlet" to servlet jak nazwa wskazuje który mi to ładnie rozprowadza. Poza tym, gdzieś czytałem, że jeśli nazywam to mvc-dis to mój xml musi się nazywać mvc-dis-servlet.xml
    4/5. Nie będzie trudniej bo jeżeli pakiet nazywa się admin to automatycznie wiem, że katalog też nazywa się admin i o to mi chodzi
    EDIT:
    Przewiduje 3 katalogi jeden do instalacji blog'a drugi do panelu admina trzeci do strony głównej gdzie będzie treść dla użytkowników

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