我有一个基于spring mvc的本地化Web应用程序,它有一个外化的消息资源包/文件。
捆绑包中的几条示例消息是:
...
msg1=Click here to go to your account
msg2=Click here to go to your inbox
...
正如您所看到的,我的消息形式为:'点击此处......'。现在,我希望将消息/文本的“点击此处”部分作为链接,其目的地对于每个用户是不同的(例如,对于'msg1',user1将具有到user1的帐户的链接,而对于user2,目标将是到user2的帐户的链接,依此类推。)
您能否告诉我如何实现这一目标?
答案 0 :(得分:3)
所有用户的链接应该相同。由于用户经过身份验证,服务器应该知道哪个用户正在执行给定的请求,因此应该使用该信息而不是请求参数来获取当前用户的收件箱或帐户。
也就是说,如果您确实需要为每个用户传递一个不同的请求参数,只需参数化您的消息:
msg1=<a href="{0}">Click here</a> to go to your account
并使用您的消息标记来通过参数。使用JSTL,这将是这样的:
<c:url var="accountUrl" value="/account.action">
<c:param name="userId" value="${currentUserId}"/>
</c:url>
<fmt:message key="msg1">
<fmt:param value="${accountUrl}"/>
</fmt:message>