2011-12-23 9 views
5

<spring:message />の引数としてリンクを使用し、そのために<c:set/>を使用する必要があります。 contextPathに相対的なリンクを持つには<c:url>を使用します。 を<c:set/>で使用しているのはなぜですか? <a href/>を使用してc:urlをc:で使用する

<c:set value='<c:url value="/x"/>' var='doc1'/> 
<spring:message code="doc.link" arguments="${doc1}"/> <%-- ${doc1} is empty --%> 
Simlar

は良い作品:

<c:set value='<a href="/fullurl/x">here</a>' var='doc1'/> 
<spring:message code="doc.link" arguments="${doc1}"/> 

messages.properties:

<c:set value='<a href="<c:url value="/x"/>">here</a>' var='doc1'/> 
:私はまさにそのようなことを仕事に必要

doc.link = Doc is {0} 

EDIT

答えて

13

タグ本体に置く:

<c:set var="doc1"><a href="<c:url value="/x" />">here</a></c:set> 
<spring:message code="doc.link" arguments="${doc1}"/> 

をそれとも、XMLよくformnessたい場合:

<c:url var="url" value="/x" /> 
<c:set var="doc1"><a href="${url}">here</a></c:set> 
<spring:message code="doc.link" arguments="${doc1}"/> 
4

<c:url>には、出力するのではなく変数に結果を設定するオプションがあります。 var属性を設定するだけです。

<c:url value="..." var="doc1" /> 
+0

を私は同意しません。私はそのようなものを使用しています: '" /> 'var属性なし。 – marioosh

+1

は何と一致しませんか?それを行うための_option_があります。あなたがそれを使うと( 'var'を指定すると)、代わりにそこに格納されます – Bozho

+0

@marioosh私の更新された答えを見てください – adarshr

3

あなたはこれを行うことができます。あなたのメッセージはメッセージの最後の{0}現れで、あなたは、単にdoc.link = Doc isにメッセージを変更し、以下のように行うことができますdoc.link = Doc is {0}あるので

<c:url var="myURL" value="/x" /> 
<spring:message code="doc.link" arguments="${myURL}" /> 

を:

<spring:message code="doc.link" /><a href="<c:url value="/x"/>">here</a>

これはまさにあなたがやりたいことをするでしょう!

関連する問題