java-如何通过Vaadin / Spring应用程序提供静态资源?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何通过Vaadin / Spring应用程序提供静态资源?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2513字,纯文字阅读大概需要4分钟。
内容图文
我有带有弹簧安全集成的Vaadin Web应用程序,用于身份验证. Vaadin servlet的配置非常简单:
<servlet>
<servlet-name>Vaadin Application Servlet</servlet-name>
<servlet-class>com.example.SpringApplicationServlet</servlet-class>
<init-param>
<param-name>applicationBean</param-name>
<param-value>mainApplication</param-value>
</init-param>
<init-param>
<param-name>widgetset</param-name>
<param-value>com.example.widgetset.CustomWidgetSet</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Vaadin Application Servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Servlet初始化Spring Context并返回Vaadin应用程序.我还为此配置了安全性,并配置了一个自定义登录表单,如下所示:
<servlet>
<servlet-name>login</servlet-name>
<jsp-file>/jsp/login.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>login_error</servlet-name>
<jsp-file>/jsp/loginError.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>login_error</servlet-name>
<url-pattern>/login_error</url-pattern>
</servlet-mapping>
登录表单使用外部CSS设置样式,并且还包含一些图像.基本上,图像位于/ jsp / img中,样式表位于/jsp/login.css中.因此,WAR结构如下所示:
> / jsp
> / META-INF
> / VAADIN
> / WEB-INF
图像和CSS都不会加载,因为显然所有这些请求都映射到vaadin servlet.我该如何定义一些静态资源目录,而Vaadin Servlet无法提供该目录?我已经尝试了春季mvc:resources,但是没有用.谢谢您的帮助.
再见
菲利普
我已经弄清楚了.虽然这是一种解决方法.我已经将Vaadin应用程序Servlet映射到/ app / *之类,而不是/ *(请记住,在这种情况下,您还必须将同一servlet映射到/ VAADIN / *).使用此配置,我可以从Web应用程序访问jsp目录,并且一切正常.我已经删除了整个Spring Resources配置,因为这没有用.
因此,再一次,我仍然不太满意此解决方案,而是希望以其他方式配置我的RESOURCES目录,但客户端很满意:).如果有人有正确的解决方案,我将不胜感激.
解决方法:
使用url重写过滤器可以获取有关URL映射的更多信息.
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后例如将Vaadin应用程序映射到/ vaadin并在urlrewrite.xml中配置url映射
<rule>
<from>/styles/**</from>
<to last="true">/styles/$1</to>
</rule>
<rule>
<from>/images/**</from>
<to last="true">/images/$1</to>
</rule>
<rule>
<from>/**</from>
<to>/vaadin/$1</to>
</rule>
<outbound-rule>
<from>/vaadin/**</from>
<to>/$1</to>
</outbound-rule>
编辑
另一种选择是将静态文件放在/ VAADIN /目录中.
内容总结
以上是互联网集市为您收集整理的java-如何通过Vaadin / Spring应用程序提供静态资源?全部内容,希望文章能够帮你解决java-如何通过Vaadin / Spring应用程序提供静态资源?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。