标签: primefaces

<f:facet>做什么以及何时应该使用它?

我一直遇到标签问题<f:facet>.我正在使用它的其他代码示例,但我不确定它的用途是什么.

我已经编写了一些代码,这些代码在方法上与我见过的其他代码完全相同,除非它包含在<f:facet name=actions>标记中.当我在我的代码周围添加它时,我正在包装它的下拉框在我部署时消失.任何人都可以为此提出建议或让我深入了解如何以及何时使用方面?

这是我的代码,我不打扰添加bean代码,因为它们只是基本的getter和setter,我不认为它们会造成麻烦.

<f:facet name="actions">
    <p:selectOneMenu id="SwitchWeekDrpDwnMenu" 
                     value="#{depotWorkloadBean.selectView}"
                     partialSubmit="true">
        <p:ajax update="mainForm" 
                listener="#{depotWorkloadBean.updateView}" />
        <f:selectItem itemLabel="Day view" itemValue="Day"/>
        <f:selectItem itemLabel="01/01/2014" itemValue="Week"/>
    </p:selectOneMenu>
</f:facet>
Run Code Online (Sandbox Code Playgroud)

如果我删除了facet标签,则显示下拉框,但不能正常运行.

xhtml jsf facet primefaces

47
推荐指数
1
解决办法
5万
查看次数

在JSF中按ID查找组件

我想UIComponent通过我提供的id从托管bean中找到一些.

我写了以下代码:

private UIComponent getUIComponent(String id) {  
      return FacesContext.getCurrentInstance().getViewRoot().findComponent(id) ;  
}
Run Code Online (Sandbox Code Playgroud)

我已经定义了一个p:inputTextarea:

<p:inputTextarea id="activityDescription" value="#{adminController.activityDTO.activityDescription}" required="true" maxlength="120"
    autoResize="true" counter="counter" counterTemplate="{0} characters remaining." cols="80" rows="2" />
Run Code Online (Sandbox Code Playgroud)

现在,如果在getUIComponent("activityDescription")返回方法时调用该方法null,但如果我将其调用,getUIComponent("adminTabView:activityForm:activityDescription")那么我可以获取该org.primefaces.component.inputtextarea.InputTextarea实例.

有没有办法让组件只有id,即"activityDescription"不是绝对id,即"adminTabView:activityForm:activityDescription"?

jsf uicomponents primefaces jsf-2

46
推荐指数
1
解决办法
9万
查看次数

在验证错误发生后,如何使用PrimeFaces AJAX填充文本字段?

我在视图中有一个表单,它执行自动完成和gmap本地化的ajax部分处理.我的支持bean实例化一个实体对象"Address",并且该对象引用了表单的输入:

@ManagedBean(name="mybean")
@SessionScoped
public class Mybean implements Serializable {
    private Address address;
    private String fullAddress;
    private String center = "0,0";
    ....

    public mybean() {
        address = new Address();
    }
    ...
   public void handleAddressChange() {
      String c = "";
      c = (address.getAddressLine1() != null) { c += address.getAddressLine1(); }
      c = (address.getAddressLine2() != null) { c += ", " + address.getAddressLine2(); }
      c = (address.getCity() != null) { c += ", " + address.getCity(); }
      c = (address.getState() != null) { …
Run Code Online (Sandbox Code Playgroud)

validation ajax jsf primefaces

45
推荐指数
1
解决办法
3万
查看次数

<p:ajax>事件列表

我搜索过互联网,但找不到<p:ajax>活动清单.任何人都可以提供<p:ajax>标签的完整事件列表吗?

如果有onblur事件或类似事件我特别感兴趣.

ajax jsf primefaces jsf-2

45
推荐指数
5
解决办法
20万
查看次数

在JSF/PrimeFaces ajax请求上的会话超时和ViewExpiredException处理

我发现这篇文章对非ajax请求有用如何在JSF 2中处理会话过期和ViewExpiredException? 但是当我使用AJAX调用提交时,我无法使用它.

假设在一个primefaces对话框中,我正在使用AJAX发布一个post请求,session已经超时了.我看到我的页面卡住了.

如何解决这种情况的,这样当我POST使用AJAX,我可以重定向他对我的看法过期的页面,然后转发他类似于上面的链接解决方案登录页面?

JSF2/Primefaces/Glassfish的

ajax session-timeout primefaces jsf-2 viewexpiredexception

44
推荐指数
2
解决办法
9万
查看次数

RichFaces与PrimeFaces(性能)

我正在使用JSF 2.0,我正在寻找一个在性能方面负载最小的copmponent库.如果我在RichFaces和PrimeFaces之间做出选择,哪一个更好用?两者的优点和缺点是什么?

jsf richfaces primefaces

42
推荐指数
4
解决办法
5万
查看次数

推迟加载和解析PrimeFaces JavaScript文件

在使用Google PageSpeed分析JSF 2.1 + PrimeFaces 4.0 webapp的性能时,它建议推迟解析JavaScript文件.在一个测试页面<p:layout>,并用表格<p:watermark><p:fileUpload>它看起来像如下...

<p:layout>
    <p:layoutUnit position="west" size="100">Test</p:layoutUnit>
    <p:layoutUnit position="center">
        <h:form enctype="multipart/form-data">
            <p:inputText id="input" />
            <p:watermark for="input" value="watermark" />
            <p:focus for="input" />
            <p:fileUpload/>
            <p:commandButton value="submit" />
        </h:form>
    </p:layoutUnit>
</p:layout>
Run Code Online (Sandbox Code Playgroud)

...它列出了可以推迟的以下JavaScript文件:

  • primefaces.js (219.5KiB)
  • jquery-plugins.js (191.8KiB)
  • jquery.js (95.3KiB)
  • layout.js (76.4KiB)
  • fileupload.js (23.8KiB)
  • watermark.js (4.7KiB)

它链接到此Google开发人员文章,其中解释了延迟加载以及如何实现它.你基本上需要<script>onload事件期间动态创建所需的window.在最简单的形式下,旧的和错误的浏览器被完全忽略,它看起来像这样:

<script>
    window.addEventListener("load", function() {
        var script = document.createElement("script");
        script.src = "filename.js";
        document.head.appendChild(script);
    }, false);
</script>
Run Code Online (Sandbox Code Playgroud)

好吧,如果您可以控制这些脚本,这是可行的,但所列出的脚本都被JSF强制自动包含.此外,PrimeFaces呈现一堆内嵌的脚本到HTML被直接调用输出$(xxx)从 …

javascript jsf deferred-loading primefaces jsf-2

41
推荐指数
1
解决办法
9154
查看次数

如何使用jQuery选择JSF组件?

我正在尝试使用PrimeFaces和JSF组件实现jQuery,但它无法正常工作.当我尝试用HTML标签做同样的事情时,它正常工作.

以下是带有HTML标记的代码,它可以与jQuery一起使用:

<input type="checkbox" id="check2"></input>
<h:outputText value="Check the box, if your permanent address is as same as current address."></h:outputText> 
<h:message for="checkbox" style="color:red" />
Run Code Online (Sandbox Code Playgroud)

$("#check2").change(function() {
    if ($("#check2").is(":checked")) {
        $("#p2").hide();
    } else {
        $("#p2").show();
    }
});
Run Code Online (Sandbox Code Playgroud)

以下是使用PrimeFaces/JSF的代码,它与jQuery无法正常工作:

<p:selectManyCheckbox >
    <f:selectItem itemLabel="1" value="one" id="rad" ></f:selectItem>
</p:selectManyCheckbox>
Run Code Online (Sandbox Code Playgroud)

$("#rad").change(function() {
    if ($("#rad:checked").val() == "one") {
        $("#p2").hide();
    } else {
        $("#p2").show();
    }  
});
Run Code Online (Sandbox Code Playgroud)

jquery jsf primefaces jsf-2

40
推荐指数
2
解决办法
6万
查看次数

PrimeFaces commandButton不会导航或更新

我使用Primefaces使我的应用程序更美观.我注意到了,p:commandButtonh:commandButton没有以同样的方式工作.

p:commandButton呼叫的方式,没有别的hapens.该h:commandButton调用方法和返回导航.

使用后按下登录按钮后我遇到重定向问题p:commandButton.怎么处理?


我有一个更新参数:

<p:commandButton value="Login" action="#{login.login}" type="submit" update="msgs" />
Run Code Online (Sandbox Code Playgroud)

jsf primefaces jsf-2

39
推荐指数
3
解决办法
8万
查看次数

使用p:calendar(不验证)相互限制开始和结束日期时间

我们要求向用户提供两个p:calendar组件,每个组件代表一个开始和结束日期.两个日期时间都有日期,小时和分钟.PrimeFaces具有完善的mindate,maxdate,minHour,maxHour,minMinute,和minMinute属性可用.

现在的要求是:

无法将开始日期时间设置为大于或等于结束日期时间.将结束日期时间设置为小于或等于结束日期时间是不可能的.

以下等式应该成立:

begin datetime < end datetime
Run Code Online (Sandbox Code Playgroud)

现在我们尝试了以下JSF:

<p:calendar id="begin-date"
            value="#{debugManager.selectedBeginDate}"
            mindate="#{debugManager.minBeginDate}"
            maxdate="#{debugManager.maxBeginDate}"
            maxHour="#{debugManager.maxBeginHour}"
            maxMinute="#{debugManager.maxBeginMinute}"
            pattern="yyyy-MM-dd HH:mm"
            showButtonPanel="true"
            readonlyInput="true"
            navigator="true"
            showOn="button"
            required="true">
    <p:ajax event="dateSelect" update="end-date" />
</p:calendar>

<p:calendar id="end-date"
            value="#{debugManager.selectedEndDate}"
            mindate="#{debugManager.minEndDate}"
            minHour="#{debugManager.minEndHour}"
            minMinute="#{debugManager.minEndMinute}"
            pattern="yyyy-MM-dd HH:mm"
            showButtonPanel="true"
            readonlyInput="true"
            navigator="true"
            showOn="button">
    <p:ajax event="dateSelect" update="begin-date" />
</p:calendar>
Run Code Online (Sandbox Code Playgroud)

这是一个示例性的最小/最大方法(结束日期):

public Date getMinEndDate()
{
    return this.getSelectedBeginDate();
}
Run Code Online (Sandbox Code Playgroud)

如您所见,最小结束日期是当前AJAX选择的开始日期.正确设置结束日期不允许将开始日期设置为结束日期.

当把时间纳入等式时问题就开始了......

由于p:calendar的接口有单独的方法,bean必须提供逻辑:

public int getMinEndHour()
{
    Date selectedBeginDate = this.getSelectedBeginDate();
    Date selectedEndDate = …
Run Code Online (Sandbox Code Playgroud)

java ajax jsf calendar primefaces

39
推荐指数
1
解决办法
5478
查看次数