我知道如何在Controller或Domain类中拆分字符串。
但我想将字符串拆分为GSP。
我的字符串将如下所示:
ASD25785-T
我希望能够在GSP视图中将其拆分为2个字符串。
String a = ASD25785
String b = T
是否有可能在GSP内部做到这一点?
答案 0 :(得分:0)
这样的事情怎么样:
<%
String[] tokens = "ASD25785-T".split("-")
String b = tokens[0]
String c = tokens[1]
%>
<强> NB 即可。使用try catch,因为你可能会得到ArrayOutofBoundException
答案 1 :(得分:0)
这取决于您是否具有预定义格式,或者您需要通用格式。
没有try / catch并在String中使用regex find方法:
<%
String s="ASD25785-T"
String a,b
s.find(/(.+)-(.+)/) { fullMatch, first, second -> [
a=first
b=second
}
%>
如果您确定总会有匹配,那么这是一个可爱的单行:
<%
String s="ASD25785-T"
def (a,b) = s.find(/(.+)-(.+)/) { fullMatch, first, second -> [first,second]}
%>
注意:但是,如果要在视图中使用它,则应创建标记。 Grails taglibs几乎可以轻松编写,并且更好地用于GSP代码。
http://grails.github.io/grails-doc/2.4.x/ref/Command%20Line/create-tag-lib.html
http://grails.github.io/grails-doc/latest/guide/single.html#taglibs
这是一个字符串操作taglib
class StringsTaglib {
def split = { attrs, body ->
String input= attrs.input
String regex= attrs.regex
int position= attrs.index as Integer
out << input.split(regex)[position]
}
}
然后你可以像这样使用它:
a:<g:split input="ASD25785-T" regex="-" index="0"/>
b:<g:split input="ASD25785-T" regex="-" index="1"/>