![](/img/trans.png)
[英]Does using “JSP Document” / “JSP in XML notation” imply outputting XHTML?
[英]Composed messages using JSP and XML
我有一個帶有消息的XML,例如:
<?xml version="1.0" ?>
<messages>
<hello>Hi {1} welcome to {2}</hello>
</messages>
因此,我想用一些JSP變量替換{1}和{2}並打印結果:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>
/* set vars */
<c:set var="name" value="John Doe" />
<c:set var="location" value="Internet" />
/* import and parse xml */
<c:import url="messages.xml" var="messages" />
<x:parse xml="${messages}" var="xml" />
/* print message */
<x:out select="$xml/messages/hello" var="name" var="location" />
最后一行的結果應為:
Hi John Doe welcome to Internet
我正在努力使它正常工作,但我完全迷路了。 您能幫我解決這個問題還是給我這個“技術”的名稱,以便不斷尋找信息?
謝謝!
這稱為(消息)格式,而MessageFormat
類正是您要尋找的。 看一下JavaDoc:
http://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html
這種任務通常稱為“ 國際化 ”或“ 模板化 ”。
這是使用現有代碼執行此操作的簡單方法:
<c:set var="helloTemplate">
<x:out select="$xml/messages/hello" />
</c:set>
<c:out value="<%= java.text.MessageFormat.format(helloTemplate,
pageContext.getAttribute("name"),
pageContext.getAttribute("location")) %>" />
在JSP中使用scriptlet (<%= .. %>)
並不是最好的處理方式,而是可以創建一個在內部使用MessageFormat的函數/標記。 創建自定義標簽的示例: https : //sites.google.com/a/pintailconsultingllc.com/java/custom-jsp-tag-libraries
或者,如果您可以控制消息文件,則可以使用屬性文件代替xml格式(例如messages.properties
),該文件將包含:
hello=Hi {1} welcome to {2}
然后可以按以下方式使用它:
<fmt:message key="hello">
<fmt:param value="${name}" />
<fmt:param value="${location}" />
</fmt:message>
通常將其稱為“ 國際化 ”-更多信息: http : //docs.oracle.com/cd/E19159-01/819-3669/bnaxu/index.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.