1.假设你用以下地址访问系统:
http://www.abc.com/html/aboutLaw?name=cat&age=20
很明显是渲染了aboutLaw.ftl这个页面。如果要在aboutLaw.ftl中直接使用传来的参数name和age,要怎么用呢?
很简单,用以下变量:
<#list RequestParameters?keys as x>
${x}<br/>
${RequestParameters[x]}<br/>
---------------------<br/>
</#list>
其实就是用到了RequestParameters。在上例中,可以用${RequestParameters['name']}直接得到传过来的参数值。
2.还有一个变量:Request
<#list Request?keys as x>
key:${x}<br/>
value:${Request[x]}<br/>
--------------------- <br/>
</#list>
我的controller如下:
package controller
import java.util.HashSet;
import net.sf.json.JSONArray
import javax.servlet.RequestDispatcher
import java.lang.Thread
import model.*
import javax.servlet.ServletResponse
import org.springframework.web.servlet.ModelAndView
class HtmlController extends BaseController {
def gotoHtml={
render(view:"${params.page}")
}
def aboutLaw={
}
def aboutYuanli={
}
def aboutFee={
}
def aboutUs={
}
def help={
}
}
访问地址为:
http://www.abc.com/html/aboutLaw
打印出的信息如下:
key:javax.servlet.forward.request_uri
value:/html/aboutLaw
---------------------
key:javax.servlet.forward.context_path
value:
---------------------
key:javax.servlet.forward.servlet_path
value:/html/aboutLaw
---------------------
key:aboutFee
value:controller.HtmlController$_closure4@3b889b
---------------------
key:manager
value:manager.Manager@793ec9
---------------------
key:org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE
value:org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@1f39cb2: startup date [Tue Nov 08 09:21:17 CST 2011]; parent: Root WebApplicationContext
---------------------
key:org.springframework.web.servlet.DispatcherServlet.THEME_RESOLVER
value:org.springframework.web.servlet.theme.FixedThemeResolver@5e67f1
---------------------
key:springMacroRequestContext
value:org.springframework.web.servlet.support.RequestContext@857f69
---------------------
key:metaClass
value:groovy.lang.ExpandoMetaClass@359912[class controller.HtmlController]
---------------------
key:aboutUs
value:controller.HtmlController$_closure5@6ffb14
---------------------
key:help
value:controller.HtmlController$_closure6@1cd022c
---------------------
key:org.codehaus.groovy.grails.GRAILS_APPLICATION_ATTRIBUTES
value:org.codehaus.groovy.grails.web.servlet.DefaultGrailsApplicationAttributes@49c8dd
---------------------
key:urlMapping.FILTERED
value:
---------------------
key:charEncodingFilter.FILTERED
value:
---------------------
key:ctx
value:org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@1f39cb2: startup date [Tue Nov 08 09:21:17 CST 2011]; parent: Root WebApplicationContext
---------------------
key:org.codehaus.groovy.grails.CONTROLLER_NAME_ATTRIBUTE
value:html
---------------------
key:grailsApp
value:org.codehaus.groovy.grails.commons.DefaultGrailsApplication@11aed03
---------------------
key:org.codehaus.groovy.grails.CONTROLLER
value:controller.HtmlController@22537a
---------------------
key:hiddenHttpMethod.FILTERED
value:
---------------------
key:grailsWebRequest.FILTERED
value:
---------------------
key:org.springframework.web.servlet.DispatcherServlet.CONTEXT
value:org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@1f39cb2: startup date [Tue Nov 08 09:21:17 CST 2011]; parent: Root WebApplicationContext
---------------------
key:aboutLaw
value:controller.HtmlController$_closure2@1968017
---------------------
key:aboutYuanli
value:controller.HtmlController$_closure3@1b3a564
---------------------
key:class
value:class controller.HtmlController
---------------------
key:org.codehaus.grails.INCLUDED_JS_LIBRARIES
value:
---------------------
key:gotoHtml
value:controller.HtmlController$_closure1@12f7431
---------------------
key:getPage
value:controller.BaseController$_closure1@753f9f
---------------------
key:org.codehaus.groovy.grails.ACTION_NAME_ATTRIBUTE
value:aboutLaw
---------------------
key:org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.GSP_SITEMESH_PAGE
value:org.codehaus.groovy.grails.web.sitemesh.GSPSitemeshPage@1a41860
---------------------
key:reloadFilter.FILTERED
value:
---------------------
key:com.opensymphony.sitemesh.APPLIED_ONCE
value:
---------------------
key:sysParaService
value:service.SysParaService@6231ed
---------------------
key:day
value:86400
---------------------
key:org.codehaus.groovy.grails.WEB_REQUEST
value:ServletWebRequest: uri=/grails/html/aboutLaw.dispatch;client=127.0.0.1;session=D0849CBBEA6B59B4B7A0653BBF363064
---------------------
key:org.springframework.web.servlet.DispatcherServlet.LOCALE_RESOLVER
value:org.springframework.web.servlet.i18n.SessionLocaleResolver@44899b
其中的javax.servlet.forward.request_uri很有用。
在freemarker中取得当前url ,就可以用以下语句
${Request['javax.servlet.forward.request_uri']}