Warum jsp-Dateien innerhalb des WEB-INF-Ordner arbeitet , sondern unter einem Ordner unter WEB-INF nicht?

Wenn meine jsp-Dateien sind innerhalb von WEB-INF-Ordner (/WEB-INF/die Datei.jsp) , ich kann auf localhost: 8080/ProjectCtxtRoot/, aber ich kann nicht darauf zugreifen, wenn Sie Sie in /WEB-INF/jsp/Datei.jsp?

Änderte ich den Pfad in der willkommen-Liste-tag web.xml wie folgt

<welcome-file-list>
       <welcome-file>/JSP/fileName.jsp</welcome-file>
</welcome-file-list>

Ich auch geändert dispatcher-servlet.xml wie folgt

   <bean id="jspViewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/jsp/"
          p:suffix=".jsp" /> 

Trotzdem funktioniert es nicht. Die Url für den oben genannten Fall sind

 localhost:8080/ContextRoot/jsp/
 localhost:8080/ContextRoot/jsp/fileName.jsp
 localhost:8080/ContextRoot/jsp/fileName 

aber es funktioniert nicht für eine der oben genannten urls.

Aber es war zu arbeiten, wenn

 <welcome-file-list>
       <welcome-file>/fileName.jsp</welcome-file>
</welcome-file-list>

dispatcher-servlet.xml wie folgt

<bean id="jspViewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      p:prefix="/WEB-INF/"
      p:suffix=".jsp" /> 

Url für die oben genannten Fall ist:localhost: 8080/ContextRoot/und es funktioniert.

Ich verwende tomcat-v-7.0-server. Ich aktualisieren mein Projekt in Eclipse IDE, dann reinigen Sie, bauen Sie, bauen Sie Krieg mit mvn clean install und wählen Sie dann den Krieg von tomcat-manager-homepage und installieren Sie es. Ich mache das jedes mal.

Dies ist, wie die diapatcher-servlet.xml sieht durch den Prozess. Ich habe gerade bestimmten Abschnitt wie oben gesagt

<?xml version="1.0" encoding="UTF-8"?>


<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
                    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd     
                    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">

    <mvc:annotation-driven/>

    <context:component-scan base-package="com.projectName.www" />

    <!-- Factory bean that creates the Mongo instance -->
    <bean id="mongo" class="org.springframework.data.mongodb.core.MongoFactoryBean">
        <property name="host" value="localhost" />
    </bean>

    <!-- MongoTemplate for connecting and quering the documents in the database -->
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg name="mongo" ref="mongo" />
        <constructor-arg name="databaseName" value="tableName" />
    </bean>

    <!-- Use this post processor to translate any MongoExceptions thrown in @Repository annotated classes -->
    <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />



    <bean id="jspViewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/jsp/"
          p:suffix=".jsp" /> 

  <!--   <bean class="org.springframework.web.servlet.view.tiles2.TilesViewResolver"/>

    <bean class=
    "org.springframework.web.servlet.view.tiles2.TilesConfigurer"> -->
 <!--  <property name="definitions">
    <list>
      <value>/WEB-INF/views/views.xml</value>
    </list>
  </property> 
</bean> -->




</beans>

Dies ist, wie mein web.xml sieht aus wie

<web-app>

<!--   <display-name>Archetype Created Web Application</display-name> -->

   <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/src/main/webapp/WEB-INF/dispatcher-servlet.xml</param-value>
        </init-param>-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
    </context-param> 

   <!--  <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener> -->

    <welcome-file-list>
       <welcome-file>/fileName.jsp</welcome-file>
    </welcome-file-list> 


</web-app>

Ok. Es funktioniert, wenn ich zog die gesamte jsp-Ordner aus /webapp/WEB-INF/jsp/Dateiname.jsp-zu /webapp/jsp/Dateiname.jsp. Ich würde gerne wissen,
1. warum funktioniert es jetzt?
2. Ist das der richtige Weg, Dinge zu tun?
3. Es funktioniert, wenn die url localhost:8080/CtxtRoot/jsp/oder localhost:8080/CtxtRoot/jsp/Suche.jsp, aber es funktioniert nicht für localhost:8080/AnnaUnivResults/jsp/Suche. Warum ist es so?

  • Ich denke, dass die groß-und Kleinschreibung könnte tatsächlich einen Unterschied machen hier seit dem Frühjahr ist die Interpretation, die Dinge in eine Datei Weg.
  • hinterlassen Sie bitte einen Kommentar zu sagen, wenn das erste Beispiel funktioniert, wenn die welcome-Datei hat eine geringere Falle jsp.
  • Ein <welcome-file> wird vollständig nichts mit einer Feder ViewResolver. Ihre Frage, die derzeit alle über dem Platz. Sie müssen klären, Ihre Kontext-Pfad und die genaue HTTP-request senden Sie in jedem Szenario. Wenn die Anforderung bearbeitet wird Frühling DispatcherServlet werden Sie brauchen, um die Prozedur als gut.
  • Machen "jsp" als Kleinbuchstaben funktioniert nicht.
  • Ich glaube, Sie brauchen, um zu erklären, wie Sie die app, die config-Dateien für Ihre web-app-server beziehen sich möglicherweise auf einige der Fragen, die in der Nähe der Unterseite der post.
  • - post-die web-xml-filter ein oder servlet xml.
  • Was meinst du, meine Frage ist ganz über dem Platz?
  • Sie veröffentlicht die app-Kontext, nicht den web-xml, fragte ich nach.
  • die url, die Sie eingeben, sollte keine 'jsp', es sei denn, die url-Muster in Ihrem web-xml hat auch, die. Ich denke, das ist dein Fehler. Versuchen Sie, die jsp zurück in WEB-INF/jsp und ändern der view-resolver für die Benutzer /WEB-INF/jsp wieder an, und fordern localhost:8080/CtxtRoot/Dateiname.jsp
  • Du meinst jsp sollten nicht enthalten sein, wie dies localhsot:8080/CtxtRoot/'jsp'/ oder localhost:8080/CtxtRoot/jsp/fileName.'jsp'
  • Sollte der view-resolver werden /WEB-INF/jsp oder /WEB-INF/jsp/ ?
  • Ich denke /WEB-INF/jsp/ aber ich kann mich nicht erinnern, versuchen Sie beide.
  • Nein, beide werden /WEB-INF/jsp sowie /WEB-INF/jsp/ hat nicht funktioniert. Bitte upvote die Frage (und nicht downvote es), wie es anderen helfen würde, und verhindert, dass mein account blockiert wird.
  • oh, ich glaube, ich sagte Sie die falsche Sache, die Anforderung, die Sie machen, sollten Sie nicht am Ende mit jsp entweder, so versuchen localhost:8080/CtxtRoot/fileName weil das servlet wird automatisch fügen Sie die Datei mit der Dateinamenerweiterung", wie Sie es konfiguriert.
  • NÖ. Es hat nicht funktioniert.
  • Ich muss wirklich schlafen gehen, sorry. Ich fühle, du bist nah dran, aber vielleicht müssen Sie hinzufügen/entfernen ein slash irgendwo, oder fix groß - / Kleinschreibung oder so etwas.
  • Wenn möglich bitte beantworten Sie die Fragen 1, 2 und 3.
  • sorry, ich Stand einfach auf und nahm einen genaueren Blick auf Ihre web-xml, sehe ich mehrere Fehler drin. Sie haben gesagt, wesentliche Teile da, wo es hingehört initialisieren Frühjahr. Sie müssen den Kontext loader Hörer, müssen Sie den dispatcher-servlet, um seine init params, und Ihr Muster passen sollte '/*', nicht '/'. Ich werde versuchen, schreiben Sie eine formelle Antwort, wenn ich nach Hause komme von der Arbeit heute Abend, in der Zwischenzeit, ich schlage vor, Sie suchen spring-Dokumentation für den richtigen Weg, um die Konfiguration Ihrer web-xml.

InformationsquelleAutor sofs1 | 2014-09-18
Schreibe einen Kommentar