首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未通过createRenderUrl转发的页面

未通过createRenderUrl转发的页面
EN

Stack Overflow用户
提问于 2013-12-16 14:46:52
回答 1查看 150关注 0票数 0

我是liferay..what的新手,我想做的是在点击一个链接时将值传递给javascript函数,并使用传递给该函数的值从该函数调用另一个jsp页面。

这是我尝试过的。

代码语言:javascript
运行
复制
<script type="text/javascript">
function sendId(userid) {
    AUI().ready("liferay-portlet-url", function(A) {
       var portletURL = Liferay.PortletURL.createRenderURL();

       alert("in function"+userid);

       portletURL.setParameter("jspPage", "/html/assignsites/assignSites.jsp" );
       portletURL.setParameter("id", userid);
       portletURL.setPortletId("assignsites_WAR_AssignSitesportlet");

    });    }
</script>

for (User usersList: users) {   

%>
    <tr>
        <td><a href="#" onclick="sendId('<%=usersList.getUserId()%>');"><%=usersList.getFullName()%></a></td>
        <td><%=usersList.getEmailAddress()%></td>
    </tr>
<%
}
%>

我想检索assignSites.jsp上的userId,所以我在portletURL中设置了这个值。但是当我点击链接的时候,警报就会出现,没有任何东西happens..am我做对了..?

请谁给我指点一下。

EN

回答 1

Stack Overflow用户

发布于 2013-12-16 19:55:22

您提供的代码有两个问题:

  • AUI命名空间应该是顶级的,而不是function.
  • Despite
  • 的实现的一部分,您不会对构造的portletURL变量做任何事情。

Pankaj Kathiriya的评论已经给出了一种不需要任何javascript就可以生成URL的方法,这是一个打印得很好(略有修改)的版本:(警告:伪代码,在这里编写,从未测试过)

代码语言:javascript
运行
复制
for (User usersList: users) {   
%>
    <portlet:renderURL var="assignSiteURL">
       <portlet:param name="id" value="<%=usersList.getUserId()%>"/>
       <portlet:param name="jspPage" value="/html/assignsites/assignSites.jsp"/>
    </portletRenderURL>
    <tr>
        <td><a href="<%=assignSiteURL%>"><%=usersList.getFullName()%></a></td>
        <td><%=usersList.getEmailAddress()%></td>
    </tr>
<%
}
%>

请记住,AUI名称空间旨在将JS代码与其他portlet的代码隔离开来:建议的代码将以一个名为sendId(x)的全局函数结束-同一页面上的任何其他portlet都可以引入另一个同名的方法。这将导致难以解决的冲突,因此您不应该这样做。

当然,这种隔离的缺点是您不能像在"onclick“处理程序中那样轻松地调用这些方法。但是,您可以枚举要更改的所有节点并动态更新它们。

如果您坚持使用javascript解决方案,我将把它留给您(或其他人),部分原因是我认为在这种情况下没有必要使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20604975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档