Как избежать жесткого связывания активов Frontend В Spring MVC - PullRequest
1 голос
/ 24 июня 2010

Я новичок в Spring 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>

Это кажется совершенно ненужным для меня.Мы вызываем переменную из списка: код темы.Присвоение его переменной в области видимости /, а затем вызов этой переменной представления для

В идеале я хотел бы иметь несколько токенов пути, таких как: $ {imagePage}, $ {stylePath} и ​​т. Д., Которые мы могли бы вставить ииспользуйте для мягких ссылок.

Надеюсь, кто-нибудь подскажет мне качественную документацию SpringMVC или приведёт несколько примеров.Спасибо

Обновление:

Я видел несколько примеров, и engfer опубликовал нижеприведенный пример, в котором предлагается использовать теги spring в html для вывода href следующим образом:

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

Это было бы приемлемо, однако я получаю следующую ошибку от причала

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 Ответ

1 голос
/ 25 июня 2010

Код, который вы предоставили от Roo, немного ненужен. Если вы посмотрите на документацию Spring MVC, как указано в tkeE2036 ... вы увидите раздел тем 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"/>
...