我想从Stripes框架的标签中检索带有特定键的消息。

在动作bean中,我有这个:

    switch (result) {
            case REG_ALREADY_REGISTERED:
                getContext().getMessages().add(new LocalizableMessage("consumer.already.registered"));
                redirect = getContext().getSourcePageResolution();
                break;

在JSP页面中:
<stripes:messages key="consumer.already.registered"/>

但以上代码似乎无效。如果仅输入“<stripes:messages/>”,则显示条纹的默认打印方式。即带有“ ul li ”的东西。我想对这些消息进行介绍。 JSP有什么可能,如下所示:
<c:if test="${not empty actionBean.context.messages}">
    <c:out value="${actionBean.context.messages......"/> //This is the place where I am unsure
</c:if>

最佳答案

提出了一个功能请求,其中包含用于显示消息的其他标签:http://www.stripesframework.org/jira/browse/STS-245

如果您不喜欢默认消息的页眉和页脚,则只需按照文档http://stripes.sourceforge.net/docs/current/taglib/stripes/messages.html中所述的属性进行更改。但是,这将更改所有页面的页眉和页脚。如果您想为一个特定页面更改它们,那么AFAIK就是这样,别无选择:

<c:if test="${not empty actionBean.context.messages}">
    <c:forEach var="message" items=${"actionBean.context.messages}">
        ${myFn:getMessageText(message, getPageContext.request.locale)}
    </c:forEach>
</c:if>

其中myFn:getMessageText是如下定义的函数:
public static String getMessageText(Message message, Locale locale) {
    return message.getMessage(locale);
}

关于java - 如何从Stripes Framework的<stripes:messages>中检索具有特定键的消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6556712/

10-13 00:12