2011-04-17 45 views
1

我在玩Grails webflow,並且從請求中讀取參數值時出現了令人驚訝的困難。我已經如下定義的簡單流程:從Grails webflow訪問請求參數

def testFlow = { 

    stepOne{ 

     String name = params.name 

     render(view: "stepTwo", [name: name]) 
    } 
    ... 
} 

時遇到的問題是,名稱參數不解析爲我傳遞在該請求中的名稱值,而是它被分配字符串值「org.codehaus.groovy.grails.commons.metaclass.PropertyExpression」,它是Grails控制器中存在的隱式'params'對象的類的名稱。

如果我在非webflow控制器閉包(即標準控制器閉包)中放置了相同的參數分配,分配的工作方式與您預期的相同,並且'name'對象被分配了通過請求傳入的值PARAMS。

我是否忽視了這裏顯而易見的事情(不會是第一次)或者是否有其他人看到同樣的問題?我也嘗試使用 params ['name']和params.getProperty('name')來訪問參數值,但在所有情況下結果都是一樣的。

回答

1

您的流量定義/ DSL看起來並不正確。通常你不使用DSL中的render(),因爲渲染是基於你的狀態名稱而發生的。另外,params通常在action和/或on閉包內被訪問。

下面是一個更好,簡短的Grails Web流程教程。 Discovering Grails Web Flows

+0

謝謝德里克 - 博客文章幫助澄清了一些事情。 – 2011-04-19 09:34:42