Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在<;包含的JSF页面上未调用Bean方法;iframe>;_Jsf_Iframe_El_Conditional Rendering - Fatal编程技术网

在<;包含的JSF页面上未调用Bean方法;iframe>;

在<;包含的JSF页面上未调用Bean方法;iframe>;,jsf,iframe,el,conditional-rendering,Jsf,Iframe,El,Conditional Rendering,我有一个,oncomplete提供了一个包含iframe的对话框。iframe包含另一个包含菜单的页面。我在单击commandbutton时编写了一个actionListener,方法将执行并使菜单的呈现为false。令人惊讶的是,呈现变量的get方法没有调用。这是我的示例代码 <p:commandButton oncomplete="PF('Loc').show();" action="bean.rendermethod"

我有一个
,oncomplete提供了一个包含iframe的对话框。iframe包含另一个包含菜单的页面。我在单击commandbutton时编写了一个actionListener,方法将执行并使菜单的呈现为false。令人惊讶的是,呈现变量的get方法没有调用。这是我的示例代码

<p:commandButton oncomplete="PF('Loc').show();"
                 action="bean.rendermethod"
                 update="createDialog">

    <p:dialog closeOnEscape="true"
              widgetVar="Loc"
              modal="true"
              dynamic="true"
              id="createDialog"
              minimizable="false"
              maximizable="true"
              height="100%"
              width="100%"
              style="background-color:rgb(232, 232, 232) !important;">

        <iframe frameborder="0" height="768" width="100%"
                src="loc.faces"
                name="someName" id="someId" scrolling="auto" />
    </p:dialog>
</p:commandButton>
在与其父页面相同的HTTP请求中不包含指定页面。它将包含在一个全新的独立HTTP请求中。也就是说,它是由webbrowser执行的,而不是由webserver执行的。实际上,框架页面将获得它自己的全新请求范围bean,它与父页面的请求范围bean不同

此外,新的HTTP请求也不包含任何关于JSF视图的信息,因此它还将获得自己的视图范围的bean实例(如果有的话)。只有当它们在相同的HTTP会话中运行时,它们才能共享相同的会话范围的bean实例。但是将bean会话限定在范围内会产生严重的后果

尽管如此,这种方法没有任何意义。这是
的错误用途。改用
。如果您唯一关心的是滚动条之类的,只需在固定大小的块元素(如
)上插入CSS
溢出:scroll


与具体问题无关,由于缺少EL表达式大括号,您的
不正确,因此引入了一个主要的危险因素。而且,引用
“true”
字符串
值的
呈现的
attribtue是令人讨厌的,因为它对所持有的值使用了错误的数据类型。如果需要布尔类型,只需使用
boolean
而不是
String
。我可以想象,这一切都是在黑暗中胡乱摆弄的结果,然后不小心地将代码片段复制粘贴到问题中,而没有仔细测试它。以后请不要这样做。另请参见。

一个
在与其父页面相同的HTTP请求中不包含指定页面。它将包含在一个全新的独立HTTP请求中。也就是说,它是由webbrowser执行的,而不是由webserver执行的。实际上,框架页面将获得它自己的全新请求范围bean,它与父页面的请求范围bean不同

此外,新的HTTP请求也不包含任何关于JSF视图的信息,因此它还将获得自己的视图范围的bean实例(如果有的话)。只有当它们在相同的HTTP会话中运行时,它们才能共享相同的会话范围的bean实例。但是将bean会话限定在范围内会产生严重的后果

尽管如此,这种方法没有任何意义。这是
的错误用途。改用
。如果您唯一关心的是滚动条之类的,只需在固定大小的块元素(如
)上插入CSS
溢出:scroll



与具体问题无关,由于缺少EL表达式大括号,您的
不正确,因此引入了一个主要的危险因素。而且,引用
“true”
字符串
值的
呈现的
attribtue是令人讨厌的,因为它对所持有的值使用了错误的数据类型。如果需要布尔类型,只需使用
boolean
而不是
String
。我可以想象,这一切都是在黑暗中胡乱摆弄的结果,然后不小心地将代码片段复制粘贴到问题中,而没有仔细测试它。以后请不要这样做。除执行@BalusC的方法外,另请参见。

splcCreate是一个字符串字段

el表达式

 rendered="#{!(createAssociationsBean.splcCreate)}"

除了使用@BalusC的方法,splcCreate作为布尔表达式更好

splcCreate是一个字符串字段

el表达式

 rendered="#{!(createAssociationsBean.splcCreate)}"
最好将splcCreate作为布尔表达式

 rendered="#{!(createAssociationsBean.splcCreate)}"