JSF javascript布尔呈现

JSF javascript布尔呈现,javascript,jsf,geolocation,rendered-attribute,Javascript,Jsf,Geolocation,Rendered Attribute,基于javascript标志切换JSF组件呈现的最简单方法是什么? 我想根据用户是否启用HTML5来显示某些内容…例如。地理位置、本地日期选择器等 谢谢,D可以将组件的显示放在HTML div容器中,然后隐藏/显示该容器。可以将组件的显示放在HTML div容器中,然后隐藏/显示该容器。可以使用4j:jsFunction组件。在bean中设置render标志并重新渲染您可以使用a4j:jsFunction组件。在bean中设置render flag并重新渲染此答案假定您知道如何使用javascr

基于javascript标志切换JSF组件呈现的最简单方法是什么? 我想根据用户是否启用HTML5来显示某些内容…例如。地理位置、本地日期选择器等


谢谢,D

可以将组件的显示放在HTML div容器中,然后隐藏/显示该容器。

可以将组件的显示放在HTML div容器中,然后隐藏/显示该容器。

可以使用4j:jsFunction组件。在bean中设置render标志并重新渲染

您可以使用a4j:jsFunction组件。在bean中设置render flag并重新渲染此答案假定您知道如何使用javascript检查用户是否启用了HTML5。这是我的想法。javascript与JSF服务器管理bean通信的一种方法是让javascript调用隐藏的
命令按钮上的
单击事件。这就是你如何做到的。然后,这个命令按钮可以调用支持bean上的函数,比如为在页面上显示特定组件设置一个标志。对于ajax请求,您可以使用PrimeFaces
p:commandButton
update
属性进行部分更新

  • 使用
    inputText
    p:commandButton
  • 确定用户是否使用javascript启用HTML5,然后调用
    命令按钮上的单击事件。那里有
    inputText
    ,您可以将标志传递回服务器 例如:

    <h:form style="display:none">
        <h:inputText id="flag" value="#{myBean.flag}"/>
        <p:commandButton id="button" actionListener="#{myBean.process}" update="..."/>
    </h:form>
    
    在你的托管bean中,你会

    @ManagedBean
    @RequestScoped
    public class MyBean{
        private String flag;
        private boolean display;
        //setter and getter for `flag` and `display`
    
        public void process(){
            if(flag.equals("HTML5")){
                display = true;
            }else{
                display = false;
            }
        }
    }    
    

    这个答案假设您知道如何使用javascript检查用户是否启用了HTML5。这是我的想法。javascript与JSF服务器管理bean通信的一种方法是让javascript调用隐藏的
    命令按钮上的
    单击事件。这就是你如何做到的。然后,这个命令按钮可以调用支持bean上的函数,比如为在页面上显示特定组件设置一个标志。对于ajax请求,您可以使用PrimeFaces
    p:commandButton
    update
    属性进行部分更新

  • 使用
    inputText
    p:commandButton
  • 确定用户是否使用javascript启用HTML5,然后调用
    命令按钮上的单击事件。那里有
    inputText
    ,您可以将标志传递回服务器 例如:

    <h:form style="display:none">
        <h:inputText id="flag" value="#{myBean.flag}"/>
        <p:commandButton id="button" actionListener="#{myBean.process}" update="..."/>
    </h:form>
    
    在你的托管bean中,你会

    @ManagedBean
    @RequestScoped
    public class MyBean{
        private String flag;
        private boolean display;
        //setter and getter for `flag` and `display`
    
        public void process(){
            if(flag.equals("HTML5")){
                display = true;
            }else{
                display = false;
            }
        }
    }