从groovy控制器代码中的SQL语句中过滤掉数字,并在jsp视图中只显示字母字符

时间:2014-12-22 11:50:29

标签: java grails groovy gsp

在我的groovy服务类中,我有一个SQL语句,有时会返回带有ex 01 John02 Smith概念的数字。如何仅过滤John,Smith并且不包括数字。我想在我的gsp视图中只显示John,Smith而不是之前的数字标签?

在groovy控制器代码中,我调用函数:

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

在服务类中,我定义了函数retrieveConceptName:

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视图:(起始行)

<span class="metaDataDialog nodePathTitle">${conceptName.cname}</span>

1 个答案:

答案 0 :(得分:1)

您可以使用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])
}