Grails URL映射将GET参数传递给url中的控制器

时间:2019-01-03 21:33:13

标签: java grails groovy url-mapping

我正在使用Grails(3.3.9)应用程序作为一种网关。我将ajax请求发送到grails控制器,添加一些标头,然后将它们重新发送到另一个资源。

我的URL映射如下:

DECLARE @LastName varchar (50) = 'LAST'
DECLARE @Zip NUMERIC (5) = 1
DECLARE @Race varchar (10)  = '1'

DECLARE @SQL AS NVARCHAR(MAX),
        @WHERE AS NVARCHAR(MAX) = '';
SELECT @SQL = 'SELECT *
FROM myTable';
IF LEN(@LastName) > 0 
   SELECT @WHERE = @WHERE + 'LastName = ''' + @LastName + '''';

IF LEN(@Zip) > 0
   IF LEN(@WHERE) > 0
   SELECT @WHERE = @WHERE + ' AND ZIP = ''' + CONVERT(NVARCHAR(18), @Zip) + '''';;
   ELSE
   SELECT @WHERE = 'ZIP = ' + CONVERT(NVARCHAR(18), @Zip) ;

IF LEN(@Race) > 0
   IF LEN(@WHERE) > 0
       SELECT @WHERE = @WHERE + ' AND Race = ''' + @Race + '''';
   ELSE
       SELECT @WHERE = 'Race = ''' + @Race + '''';
IF LEN(@WHERE) > 0 
    SELECT @SQL = @SQL + ' WHERE ' + @WHERE 
-- PRINT @SQL
EXEC sp_ExecuteSQL @SQL

在控制器中,我按以下方式拦截它们:

static mappings = {
    ...
    "/message/api/${uri}**"(controller: 'message', action: 'api')
    ...
}

问题在于,def api(String uri) { ... String url = "${MESSAGE_SERVICE_URL}/api/" + uri ... //then I resend the request to a super secret resource } 变量如果最初传递给bakend,则不包含GET参数。

是否有可能配置URL映射(或其他任何方式)以能够无缝地接收“绑定”到控制器内部uri变量的GET参数?无法从uri映射中解析它们。

0 个答案:

没有答案