java - java Spring MVC: 无法通过InternalResourceViewResolver访问HTML页面

  显示原文与译文双语对照的内容

我有两个文件 index.html 和 user.jsp, 位置是 WebContent/WEB-INF/.

此外,我还可以使用以下代码访问 user.jsp:


<bean


 class="org.springframework.web.servlet.view.InternalResourceViewResolver">


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


 <property name="suffix" value=".jsp"/>


</bean>



控制器代码:


@RequestMapping(value="/usertimepass",method=RequestMethod.GET)


@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)


public ModelAndView time(){



 ModelAndView mv=new ModelAndView();


 mv.setViewName("user");


 System.out.println("returned user");


 return mv;


}



但是,我无法使用以下经过修改的代码访问 index.html:


<bean


 class="org.springframework.web.servlet.view.InternalResourceViewResolver">


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


 <property name="suffix" value=".html"/>


</bean>



控制器代码:


@RequestMapping(value="/usertimepass",method=RequestMethod.GET)


@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)


public ModelAndView time(){



 ModelAndView mv=new ModelAndView();


 mv.setViewName("index");


 System.out.println("returned index");


 return mv;


}



Web.xml


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


<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"


xmlns="http://java.sun.com/xml/ns/javaee"


xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"


id="WebApp_ID" version="3.0">


<display-name>SampleApp</display-name>


<servlet>


 <servlet-name>dispatcher</servlet-name>


 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>


 <load-on-startup>2</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/applicationContext.xml</param-value>


</context-param>



<listener>


 <listener-class>


 org.springframework.web.context.ContextLoaderListener


 </listener-class>


</listener>



谢谢 !

时间: 原作者:

在 WEB-INF 中的任何内容都不能从外部访问。 你需要创建两个视图解析器,或者将 index.html 放在应用程序的root 。 它的安装方式是一个或者另一个。

原作者:

尝试这个:

创建文件夹:/WEB-INF/pages/并将你的jsp文件放入其中。 user.jsp


@RequestMapping(value="/usertimepass",method=RequestMethod.GET)


@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)


public ModelAndView time(){



 ModelAndView mv = new ModelAndView("user");


 return mv;


}



web.xml


<servlet-mapping>


 <servlet-name>mvc-dispatcher</servlet-name>


 <url-pattern>*.htm</url-pattern>


 </servlet-mapping>



 <context-param>


 <param-name>contextConfigLocation</param-name>


 <param-value>/WEB-INF/applicationContext.xml</param-value>


 </context-param>



applicationContext.xml


<bean id="viewResolver"


 class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 


 <property name="prefix">


 <value>/WEB-INF/pages/</value>


 </property>


 <property name="suffix">


 <value>.jsp</value>


 </property>


</bean>



在 projectname/usertimepass 。htm访问你的视图

...