1

我有一个XSL/XML解析器来生成jsp/html代码。

使用MVC模型我需要访问 spring 库才能执行i18n翻译。因此,给定 xml

<a>
  ...
  <country>EN</country>
  ...
</a>

并使用<spring:message code="table_country_code.EN"/>标签,根据浏览器语言选择,翻译成英格兰,Inglaterra等......但是,XSL不支持<spring:message>标签。这个想法是有一个像这样的 XSLT

<spring:message code="table_country_code.><xsl:value-of select="country"/>"/>`

拥有最终代码<spring:message code="table_country_code.EN"/>并在基于 i18n 翻译的最终 JSP/HTML 中被识别。

当我进行解析以创建XML时,我还尝试在Java中创建 spring 标记,但我仍然遇到相同的错误。

The prefix "spring" for element "spring:message" is not bound.

[编辑]

我在这里看到了一些问题,比如使用bean:spring但仍然有同样的问题。任何指针?

4

1 回答 1

2

XSLT 必须是命名空间格式良好的 XML,因此您需要声明命名空间并且不能<在属性值中使用。

Spring 3 - 在 jsp 中访问 messages.properties

建议命名空间应该是

http://www.springframework.org/tags

所以大概你想要一个 XSLT 代码

<spring:message 
  xmlns:spring="http://www.springframework.org/tags"
  code="table_country_code.{country}"
/>

其中{}是评估 XPath的属性值模板country

于 2013-10-21T16:09:46.933 回答