2014-07-14 110 views
0

我正在开发基本的Spring项目并尝试实现自定义登录页面。但是当我尝试访问HTML页面时,它给了我错误“找不到页面”,但是我的jsp页面可以从同一位置访问(即ProjectName/webcontent/Sample.jsp)。为什么我无法访问html页面?无法访问HTML页面但可访问JSP页面

的web.xml是: -

<!-- Spring Security --> 
<filter> 
<filter-name>filterChainProxy</filter-name> 
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

<filter-mapping> 
<filter-name>filterChainProxy</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping> 



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

<welcome-file-list> 
<welcome-file>Sample1.html</welcome-file> 
</welcome-file-list> 

的security.xml

<security:http auto-config='true' use-expressions="true" authentication-manager- ref="FormBasedAuthenticationManager" > 

<security:intercept-url pattern="/**" access="isAuthenticated()" /> 

</security:http> 




<bean id="filterChainProxy" class="org.springframework.security.web.FilterChainProxy"> 
<security:filter-chain-map path-type="ant"> 
<security:filter-chain pattern="/**" filters="springSecurityFilterChain" /> 
</security:filter-chain-map> 
</bean> 


</beans> 

sevlet.xml

<context:component-scan base-package="XYZ" /> 
<Secured:global-method-security secured-annotations="enabled" pre-post-annotations="enabled" jsr250-annotations="enabled"/> 
<mvc:annotation-driven /> 

<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/"/> 
<property name="suffix" value=".html"/> 
</bean> 
+0

您可以发布您的视图解析器代码,看看你是如何配置? – Aeseir

+0

@Aeseir我已经更新了 – user3640507

+0

,所以你的html文件位于/ WEB-INF /文件夹中,没有其他子文件夹? – Aeseir

回答

1

基于该信息的问题是与视图解析器:

<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/"/> 
<property name="suffix" value=".html"/> 
</bean> 

JSTLView适用于JSP。

将其更改为:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/"/> 
    <property name="suffix" value=".html"/> 
    </bean> 

大回答这个问题,可以在这里也可以找到:How to serve .html files with Spring

编辑1: 由于HTML是静态的,你可以使用以下命令:

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

将您的HTML文件放在webapp/static /文件夹中,当您返回视图时,请执行以下操作

return "index.html"; 
+0

即使在上面的格式修改它不工作的bean后。我们是否需要进行其他更改? – user3640507

+0

此外,我以前使用viewResolver第一次使用JSP页面,并没有要求任何解析器。所以我想知道为什么它需要为HTML页面 – user3640507

+0

添加静态页面的额外信息。 – Aeseir