我有一个JSP,它始终获得在Action类中定义的Struts属性message
,
public String getMessage() {
return "...";
}
在JSP中,我需要修剪格式为message|E
或message|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>
=>空白。
答案 0 :(得分:0)
我终于解决了...
<s:set var="messageWithoutType">${fn:substring(message,0,fn:indexOf(message, "|"))}</s:set>
然后输出为
<s:property value="decodedUserMessageWithoutType" />
换句话说,substring
和indexOf
都必须是JSTL fn:
函数。