如何在Struts2中子串?

时间:2011-03-15 14:27:43

标签: java struts2 substring

如何使用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)} "/>

但这不起作用。我怎样才能达到我的要求?

3 个答案:

答案 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)} "/>