2011-03-15 22 views
1

如何使用Struts2 taglibs對字符串進行子串處理?如何在Struts2中進行子串處理?

這是一個使用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

我不知道Struts2的部分,因爲我不使用它的想法。嘗試用'value =「somestring」'替換'value =「$ {firstName}」''。如果它有效,那麼事實上Struts2和EL沒有共享相同的範圍。你想使用一個*或*另一個,但不是兩個。 – BalusC 2011-03-15 14:34:10

+0

可能的重複:http://stackoverflow.com/questions/64825/struts2-how-to-substring-in-jsp – kamaci 2011-03-15 14:45:21

+0

我建議你在JSP端使用JQuery來處理你的代碼。 – kamaci 2011-03-15 14:45:53

回答

0

您可以使用JSP EL引用操作屬性${action.property}

<c:out value="${fn:substring(action.firstName, 0, 5)} "/> 
5

假設的firstName是一個java.lang.String則:

<s:property value="firstName.substring(0,5)" /> 
+1

我認爲套管是錯的,但無法編輯。我認爲正確的是'substring'。 – orique 2013-05-17 07:42:09

1

的子功能僅適用於底層Java String對象,而不是在S:我們做的是設置變量。 例如:

假設我有一個包含Java變量email的(Action)類。然後,我可以在這樣的JSP文件訪問這個變量:如果我現在要@前面串一切

<s:set name="jspEmail" value="%{email}" /> 

,我必須這樣做Java的變量,而不是在JSP支柱變量。 所以這樣的:

<s:set name="namepart" value="%{email.substring(0,email.indexOf("@"))}" /> 

,然後用它喜歡:

<s:property value="%{namepart}"/>