h:如果Java脚本放在h:panelGroup中,则不会调用commandLink

时间:2013-04-13 12:21:26

标签: javascript jquery jsf jsf-1.2

以下是代码,

<h:panelGroup rendered="#{myBean.showDialogBox}"> //Boolean value from bean decides
//if Jquery Dialog box has to be shown or not for this User.

<script type="text/javascript">
/* <![CDATA[ */


   var $h=jQuery.noConflict();          
   function myFunction() 
   {

        $h(document).ready(function() {

            $h("#someDivID").dialog({

                // Dialog box attributes go here
        });
   }

   myFunction();  // Call myFunction to render Jquery Dialog box

/* ]]> */
</script>


<div id="someDivID"> //Below JSF component gets displayed inside Jquery Dialog box
    <h:commandLink value="Click Here" action="#{myBean.someMethod}"></h:commandLink>
</div>

</h:panelGroup>

问题: 如果我删除h:panelGroup,我的h:commandLink工作正常(调用bean方法)。但是,我无法删除h:panelGroup,因为此对话框必须仅根据预先定义的条件显示给少数用户。 我想使用rendered的{​​{1}}属性。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

它可能是跨度问题中的div。尝试在h:panelGroup中添加layout =“block”,使其呈现为div。

答案 1 :(得分:0)

h:panelGroup

之后放置</script>解决问题

以下是代码,

<h:panelGroup rendered="#{myBean.showDialogBox}"> //Boolean value from bean decides
//if Jquery Dialog box has to be shown or not for this User.


<script type="text/javascript">
/* <![CDATA[ */


   var $h=jQuery.noConflict();          
   function myFunction() 
   {

        $h(document).ready(function() {

            $h("#someDivID").dialog({

                // Dialog box attributes go here
        });
   }

   myFunction();  // Call myFunction to render Jquery Dialog box

/* ]]> */
</script>

</h:panelGroup> // This is what was required

<div id="someDivID"> //Below JSF component gets displayed inside Jquery Dialog box
    <h:commandLink value="Click Here" action="#{myBean.someMethod}"></h:commandLink>
</div>

但是,如果有人能够解释这一点,我将不胜感激。