2014-10-02 75 views
1

我有一个JSR 168的Portlet部署在与下面的代码一个jsp IBM Portal Server的...从JavaScript发送请求参数的PortletRequest对象

<a href=" 
     <portlet:renderURL> 
      <portlet:param name="itemNumber" value="<%=sessionBean.getItems()[i].getItemNumber()%>"/> 
     </portlet:renderURL>"><%=sessionBean.getItems()[i].getItemNumber()%> 
</a> 

我现在试图从移动这个代码我jsp到我的jQuery的JavaScript,但我不认为将portlet:renderURL会给我正确的结果。我试过了,它将源代码中的纯文本留在自定义标记中。

我怎样才能得到portlet的价值:renderURL变量到我的JavaScript? 。或者更好的问题是将请求参数从javascript传递到portletRequest对象的正确方法是什么。

--Update--

那么这里是什么,我才得以实现的更新。今天我想通了,我可以做到以下几点在我的jsp ...

<script type="text/javascript"> 
    $().ready(function() { 
     var params = ({ 
      portletUrl : '<%= renderResponse.createRenderURL() %>'     
     }); 
    init(params); 
    }); 

然后在我的jQuery外在化的文件,我可以做...

var portletUrl = null; 

$()ready(function(){ 
    var myUrl = '<a href="'+portletUrl + "?itemNumber=" + data+'">' + data + '</a>'; 
} 

function init(params) { 
    portletUrl = params.portletUrl; 
} 

这似乎工作,但我可以不帮助我们认为这不是推荐的方法。特别是因为获取我需要将portlet请求转换为http请求的参数。

谢谢

回答

4

Portlet标记只能在jsp中呈现。所以,我觉得你可以将呈现的带有参数值的url分配给一个全局的JavaScript变量并在整个范围内使用它。