将JSP中的Struts 2变量设置为Substring

时间:2018-11-08 15:30:02

标签: jsp struts2

我有一个JSP,它始终获得在Action类中定义的Struts属性message

public String getMessage() {
    return "...";
}   

在JSP中,我需要修剪格式为message|Emessage|M的消息。我需要删除结尾的管道和代码,然后将其设置为变量。结果应该是一个变量。

我尝试了这些,但它们不起作用:

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

1)带有$符号

<s:set name="messageWithoutType" value="${fn:substring(message,0,message.indexOf('|')}" />

2)带有#符号

<s:set name="messageWithoutType" value="#{fn:substring(message,0,message.indexOf('|')}" />

原始message没问题,我可以毫无问题地打印它。修剪在输出时不起作用:

<p>${messageWithoutType}</p> =>空白。

<p><s:property value="#{messageWithoutType}" /></p> =>空白。

1 个答案:

答案 0 :(得分:0)

我终于解决了...

<s:set var="messageWithoutType">${fn:substring(message,0,fn:indexOf(message, "|"))}</s:set>

然后输出为

<s:property value="decodedUserMessageWithoutType" />

换句话说,substringindexOf都必须是JSTL fn:函数。