Javascript js函数调用,参数值来自<;p:commandButton>;

Javascript js函数调用,参数值来自<;p:commandButton>;,javascript,jsf,Javascript,Jsf,我的代码如下: <p:commandButton type="submit" value="Select User" onclick="showGrpMemberSearchPageCalenderLeave(#{groupname})"/> 如果我打印这个值{session.getAttribute('USER\u GROUP\u NAME')},它会给出正确的值。但是我想调用的java脚本函数showgrpmembersearchpagecalenderleeve(#{grou

我的代码如下:

<p:commandButton type="submit" value="Select User" onclick="showGrpMemberSearchPageCalenderLeave(#{groupname})"/>
如果我打印这个值
{session.getAttribute('USER\u GROUP\u NAME')}
,它会给出正确的值。但是我想调用的java脚本函数
showgrpmembersearchpagecalenderleeve(#{groupname})
没有被调用

功能是:

function showGrpMemberSearchPageCalenderLeave(groupName){
var x= (screen.width-530)/2;
var y= (screen.height-450)/2;
window.open('./SearchGroupMembersLeaveCalander.xhtml?groupName='+groupName,'mywindow','resizable=no,toolbar=no,scrollbars=yes,height=450,width=530,top='+y+',left='+x);
return false;
}
这实际上会打开一个弹出窗口。当我没有参数值时,弹出窗口可以正常打开。请帮忙

onclick="showGrpMemberSearchPageCalenderLeave(#{groupname})"
那么,您正在将EL变量
{groupname}
打印为JS变量?假设
#{groupname}
返回一个字符串值
somegroup
,然后此代码最终呈现如下(在浏览器中打开页面,右键单击并查看源代码以自己查看):

在JS作用域中是否有JS变量
somegroup
?显然不是。看起来您打算将其作为JS字符串传递。然后你应该引用它。您最终希望JSF生成以下HTML/JS代码:

onclick="showGrpMemberSearchPageCalenderLeave('somegroup')"
onclick="showGrpMemberSearchPageCalenderLeave('#{groupname}')"
然后,您应该编写JSF/EL代码,使其生成所需的HTML/JS代码:

onclick="showGrpMemberSearchPageCalenderLeave('somegroup')"
onclick="showGrpMemberSearchPageCalenderLeave('#{groupname}')"

与具体问题无关,
c:set
中的值没有意义:

<c:set var="groupname" value="#{session.getAttribute('USER_GROUP_NAME')}"/>

看起来你不明白它是如何工作的。它已经在页面、请求、会话和应用程序范围中搜索变量。应按以下步骤进行:

<c:set var="groupname" value="#{USER_GROUP_NAME}"/>