谁能详细点解释下下面的代码。
<portlet:renderURL var="jobProcess">
<portlet:param name="action" value="displayList" />
<portlet:param name="jobStatus" value="jobProcess" />
<portlet:param name="processFlag" value="${processFlag}" />
<portlet:param name="tableType" value="JobDisplay" />
<portlet:param name="refrashFlag" value="true" />
<portlet:param name="doFlag" value="false" />
</portlet:renderURL>理解什么程度就解释什么程度就成
谢谢啦!!!!!!!

解决方案 »

  1.   

    这个很简单啊。
    创建一个指向render (doView) 方法的连接, 连接中包含的参数分别为key-value,key-value..............
      

  2.   

    这是JSR-168 API的标签库。
    你可以理解成JSTL的c:url
    只不过portlet的url分actionURL和renderURL, 一个是指向processAction方法, 一个是doView方法。
    另外, portlet的URL是经过encode的。 而且理论上这种URL的参数不是全局共享的, 只有所指向的portlet可以取得。
    如果你用WebSphere Portal Server, portlet应用可以使用URL resolver对一个可读的,符合get格式的URL进行读取, 这样也是很不错的。
      

  3.   

    如果为了方便理解, 我就瞎翻译一下吧, 前提是你知道一般的get方法的URL是什么样子的。<portlet:renderURL var="jobProcess"> 
    <portlet:param name="action" value="displayList" /> 
    <portlet:param name="jobStatus" value="jobProcess" /> 
    <portlet:param name="processFlag" value="${processFlag}" /> 
    <portlet:param name="tableType" value="JobDisplay" /> 
    <portlet:param name="refrashFlag" value="true" /> 
    <portlet:param name="doFlag" value="false" /> 
    </portlet:renderURL> 
    其中processFlag是你之前定义的变量, ${processFlag}是取得该变量的值.翻译过来应该是类似(注意是类似, 不同的server有不同的实现方式, 但是道理差不多): YOUR_HOST/YOUR_APP_ROOT?portletId=CURRENT_PORTLET_NAME&action=displayList&jobStatus=jobProcess&processFlag=XXX&tableType=JobDisplay&refrashFlag=true&doFlag=false.
    当然, 实际提交后显示的url是经过encode的。而在portlet的doView方法中, 使用renderRequest.getParameter("action");
                                  renderRequest.getParameter("jobStatus");
                                  ......
    等等就可以取得你设置在这里的参数.