在我的groovy服务类中,我有一条SQL语句,该语句有时返回带有概念的数字,例如01 John02 Smith。如何只过滤约翰,史密斯而不包括数字。我想在gsp View 中仅显示John,Smith而不显示它们前面的数字标签吗?

在常规的 Controller 代码中,我调用该函数:

def wiki =
{
    def currentNode = params.nodePath
    def conceptName = nodeService.retrieveConceptName (currentNode);
    render (template:'wiki', model:[conceptName : conceptName])
}

在服务类中,我定义了函数restoreConceptName:
def retrieveConceptName(currentNode)
{
    groovy.sql.Sql sql = new groovy.sql.Sql(dataSource);
    def row= sql.firstRow(" SELECT cname FROM Person WHERE FULLNAME= ?",[currentNode]);
    return row;
}

.gsp View :(起始行)
<span class="metaDataDialog nodePathTitle">${conceptName.cname}</span>

最佳答案

您可以使用regex清理数据。因此,正则表达式将从名称中删除所有数字和空格。您可以使用.replaceAll(/[0-9 ]/, ""),它将替换名称中的所有数字和空格。试试这个代码:

def wiki =
{
    def currentNode = params.nodePath
    def conceptName = nodeService.retrieveConceptName(currentNode)
    conceptName.cname = conceptName.cname.replaceAll(/[0-9 ]/, "")
    render (template:'wiki', model:[conceptName : conceptName])
}

09-13 13:01