2017-05-17 4 views
1

Ich versuche, eine Website mit Spring-Hibernate auf Wildfly 10-Server zu erstellen, aber der View Resolver funktioniert nicht. Wenn ich das Servlet anrufe, antwortet es mit einem einfachen String "prova1", ich denke, es würde in "prova1.jsp" gehen, stattdessen einfach prova1 im Browser schreiben. Ich habe versucht, als ein Test die Viewresolver-Definition aus dem Servlet-Kontext zu entfernen und im Grunde nichts geändert.ViewResolver Spring funktioniert nicht

Irgendeine Idee?

Dies ist der Servletkontext

<?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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> 
    <!-- Enable annotation-based Spring MVC controllers (eg: @Controller annotation) --> 
    <mvc:annotation-driven /> 


    <mvc:default-servlet-handler/> 

    <context:annotation-config /> 
    <!-- Classpath scanning of @Component, @Service, etc annotated class --> 
    <context:component-scan base-package="it.zeurelscan.dao.impl" /> 
    <context:component-scan base-package="it.zeurelscan.serviceImpl" /> 
    <context:component-scan base-package="it.zeurelscan.serviceRest" /> 
    <context:component-scan base-package="it.zeurelscan.service" /> 
    <context:component-scan base-package="it.zeurelscan.model" /> 

    <!-- Resolve view name into jsp file located on /WEB-INF --> 
    <!-- <bean --> 
    <!-- class="org.springframework.web.servlet.view.InternalResourceViewResolver"> --> 

    <!-- <property name="prefix" value="/WEB-INF/views/" /> --> 
    <!-- <property name="suffix" value=".jsp" /> --> 
    <!-- </bean> --> 

    <!-- <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> --> 
    <!-- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" 
     /> --> 
    <!-- <property name="prefix" value="/WEB-INF/views/" /> --> 
    <!-- <property name="suffix" value=".jsp" /> --> 
    <!-- </bean> --> 
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
      <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> 
      <property name="prefix" value="/WEB-INF/views/" /> 
      <property name="suffix" value=".jsp" /> 
    </bean> 


    <!-- EntityManagerFactory --> 
    <bean 
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" 
     id="entityManagerFactory"> 
     <property name="persistenceUnitName" value="zeurelscan" /> 
    </bean> 

    <!-- Vedi https://techannotation.wordpress.com/2012/10/04/spring-jta-with-jboss/ --> 
    <bean id="txManager" 
     class="org.springframework.transaction.jta.JtaTransactionManager"> 
     <property name="transactionManagerName" value="java:jboss/TransactionManager" /> 
     <property name="userTransactionName" value="java:jboss/UserTransaction" /> 
    </bean> 

    <!-- Enable @Transactional annotation --> 
    <tx:annotation-driven /> 
    <!-- <tx:annotation-driven transaction-manager="txManager" /> --> 
    <!-- <tx:jta-transaction-manager /> --> 
    <bean id="transactionManager" 
     class="org.springframework.transaction.jta.JtaTransactionManager"> 
     <property name="transactionManagerName" value="java:/TransactionManager" /> 
    </bean> 

    <mvc:resources mapping="/resources/**" location="/WEB-INF/resources/" /> 
    <mvc:resources mapping="/static/**" location="/static/" /> 

</beans> 

dies der web.xml ist

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 
    <context-param> 
    <param-name>contextConfigLocation</param-name> 
<!--  <param-value>/WEB-INF/spring/root-context.xml, /WEB-INF/spring/appServlet/servlet-security.xml</param-value> --> 
<param-value>/WEB-INF/spring/root-context.xml</param-value> 
    </context-param> 
    <context-param> 
    <param-name>PARAMETER_ENCODING</param-name> 
    <param-value>UTF-8</param-value> 
    </context-param> 
    <listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 


    <servlet> 
    <servlet-name>appServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 


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

    <welcome-file-list> 
     <welcome-file></welcome-file> 
    </welcome-file-list> 


<!--  <welcome-file-list> --> 
<!--   <welcome-file>/WEB-INF/views/index.jsp</welcome-file> --> 
<!--  </welcome-file-list> --> 

<!--  <servlet> --> 
<!--  <servlet-name>jsp</servlet-name> --> 
<!--  <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> --> 
<!-- </servlet> --> 

</web-app> 

dies die Servlet

package it.zeurelscan.serviceRest; 

import java.util.ArrayList; 
import java.util.List; 

import org.apache.log4j.Logger; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.http.HttpStatus; 
import org.springframework.http.MediaType; 
import org.springframework.http.ResponseEntity; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.RestController; 

import it.zeurelscan.model.Pagina; 
import it.zeurelscan.service.PaginaService; 
@RestController 
public class PaginaServiceRest { 

    @Autowired 
    PaginaService immaginiService; 

    private Logger logger = Logger.getLogger(PaginaServiceRest.class); 

    @RequestMapping(value = "/pagine2",method=RequestMethod.GET) 
    public String immagini2(){ 
     return "prova1"; 
    } 
} 

Antwort

0

ich Ihnen versichern, wird Ihr ViewResolver nicht gebrochen. Das Problem ist hier:

@RestController 
public class PaginaServiceRest {} 

Ihr Controller ist „voll REST“, so das zurückgegebene Ergebnis alle Handler-Methode in diesen Rest-Controller im Innern der Reaktion des Körpers sein.

@RestController = @Controller + @ResponseBody 

Add einfach @Controller und Ihre Methode mit @ResponseBody mit Anmerkungen versehen, wenn Sie den zurückgegebenen Wert in der Reaktion des Körpers wollen.

Sie können diese Zeile <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> auch aus Ihrer servlet.xml entfernen, da dies nicht obligatorisch ist.

+0

Vielen Dank, dass es funktioniert XD – genlon83

+0

Bitte akzeptieren Sie die Antwort – akuma8

Verwandte Themen