如何避免硬连接Frontend资产在Spring MVC中

时间:2010-06-24 19:40:26

标签: spring jsp spring-mvc spring-roo jspx

我是初学MVC,有使用PHP MVC框架和ROR的经验。我很难找到合适的方法来组织前端资产并将其包含在视图模板中。

以下是Roo为默认样式表生成的默认代码:

<spring:theme code="styleSheet" var="roo_css"/> 
<spring:url value="/${roo_css}" var="roo_css_url"/>  
<spring:url value="/static/images/favicon.ico" var="favicon" />
<link rel="stylesheet" type="text/css" media="screen" href="${roo_css_url}"></link>

这对我来说似乎完全没用。我们从spring:主题代码列表中调用一个变量。将它分配给视图范围/中的变量,然后为该视图调用该视图变量

理想情况下,我想要一些路径令牌,例如:$ {imagePage},$ {stylePath}等。我们可以插入并用于软链接。

希望有人能指出一些高质量的SpringMVC文档或举几个例子。感谢

更新

我已经看过几个例子,并且engfer在下面发布了一个建议使用html中的spring标签来输出href就像这样

<a href="<spring:url url='/about'/ />">About</a>

这是可以接受的但是我从jetty得到以下错误

Caused by: org.apache.jasper.JasperException: /WEB-INF/views/footer.jspx(6,22) The value of attribute "href" associated with an element type "null" must not contain the '<' character.

我错过了编码的内容吗?还是DTD?

更新

显然,内联href样式只适用于.jsp文件,因为.jspx(即使用的是)是严格的xml。 .jspx优于.jsp和

有什么好处

1 个答案:

答案 0 :(得分:1)

您从Roo提供的代码有点不必要。如果你看一下TkeE2036指出的Spring MVC文档......你会看到主题部分http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-themeresolver

<link rel="stylesheet" href="<spring:theme code='styleSheet'/>" type="text/css"/>

Spring主题标签使您能够将CSS / images / js(想象一个具有'Hello'一词的图像需要更改为英语/西班牙语等)的国际化成为单独的国际化主题文件。 http://java.sun.com/javase/6/docs/api/java/util/ResourceBundle.html约定和Spring将自动解析正确的资源捆绑主题。


如果您仍然想要${imagePath}或其他任何内容,可以使用<spring:url/>标记来完成工作。

<spring:url value="/images" var="imagePath"/>
<link rel="stylesheet" href="${imagePath}/foo.png" type="text/css"/>