如何使用Struts2 taglibs对字符串进行子串?
这是我尝试使用JSTL / EL:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
...
<s:property value="firstName" />
<c:set var="string" value="${firstName} "/>
<c:out value="${fn:substring(string,0,5)} "/>
但这不起作用。我怎样才能达到我的要求?
答案 0 :(得分:5)
假设firstName是java.lang.String,那么:
<s:property value="firstName.substring(0,5)" />
答案 1 :(得分:1)
substring函数仅适用于底层Java String对象,而不适用于我们使用它生成的s:set变量。 例如:
假设我有一个包含Java变量电子邮件的(Action)类。然后我可以像这样访问JSP文件中的这个变量:
<s:set name="jspEmail" value="%{email}" />
如果我现在想要在@之前对所有内容进行子串,我必须在Java变量而不是JSP struts变量上执行此操作。 像这样:
<s:set name="namepart" value="%{email.substring(0,email.indexOf("@"))}" />
然后像:
一样使用它<s:property value="%{namepart}"/>
答案 2 :(得分:0)
您可以使用JSP EL将操作属性引用为${action.property}
。
<c:out value="${fn:substring(action.firstName, 0, 5)} "/>