我是初学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和
有什么好处答案 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"/>