[英]js function call with parameter value from <p:commandButton>
我有一个类似的代码:
<p:commandButton type="submit" value="Select User" onclick="showGrpMemberSearchPageCalenderLeave(#{groupname})"/>
在这里,我将groupname
的值设置为:
<c:set var="groupname" value="#{session.getAttribute('USER_GROUP_NAME')}"/>
如果我打印此值#{session.getAttribute('USER_GROUP_NAME')}
它将给出正确的值。 但是我要调用showGrpMemberSearchPageCalenderLeave(#{groupname})
的Java脚本函数没有被调用。
该函数是:
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
,那么该代码最终呈现如下(在浏览器中打开页面,右键单击并查看源代码以自己查看 ):
onclick="showGrpMemberSearchPageCalenderLeave(somegroup)"
在JS范围内,您是否有JS变量somegroup
? 显然不是。 看起来您打算将其作为JS字符串传递。 然后,您应该引用它。 您最终希望JSF生成以下HTML / JS代码:
onclick="showGrpMemberSearchPageCalenderLeave('somegroup')"
然后,您应该以这样的方式编写JSF / EL代码,使其完全生成所需的HTML / JS代码:
onclick="showGrpMemberSearchPageCalenderLeave('#{groupname}')"
与具体问题无关 ,您的c:set
的值没有任何意义:
<c:set var="groupname" value="#{session.getAttribute('USER_GROUP_NAME')}"/>
您似乎不了解EL的工作原理。 它已经在页面,请求,会话和应用程序范围内搜索变量。 应按以下步骤进行:
<c:set var="groupname" value="#{USER_GROUP_NAME}"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.