标签: jsf

JSF 1.2生命周期理解:在InvokeApplication阶段执行ValueChangeListener方法

<h:selectBooleanCheckbox>在DataTable的facet头中使用a.该<h:column>DataTable的所有行内容都是<h:selectBooleanCheckbox>.行按照我想要的方式完美选择.以下是我使用的代码:

<h:form>
<h:dataTable
    value="#{employeeService.employeeList }"
    var="empl"
    binding="#{employeeService.dataTablebinding }">
    ......
    ......
    ......
    <h:column>
            <f:facet name="header">             
                <h:selectBooleanCheckbox id="chkBoxAll" value="#{employeeService.checkedHdr }" valueChangeListener="#{employeeService.checkAll }" onclick="submit()"></h:selectBooleanCheckbox>
            </f:facet>
            <h:selectBooleanCheckbox id="tableChkBox" value="#{empl.checked }" valueChangeListener="#{employeeService.getCheckChanged }" onclick="submit()"></h:selectBooleanCheckbox>
        </h:column>
</h:dataTable>
Run Code Online (Sandbox Code Playgroud)

这是以下代码ValueChangeListener:

public void checkAll(ValueChangeEvent event){
    if(isInvokeApplicationPhase(event)){
        Iterator<Employee> empl = employeeList.iterator();
        while(empl.hasNext()){
            Employee emp = empl.next();             
            emp.setChecked(checkedHdr);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是isInvokeApplicationPhase我为实现此代码而添加的实用程序(参考BalusC此链接中建议的解决方案:JSF 1.2:valueChangeListener事件未返回新选择的值):

public boolean isInvokeApplicationPhase(FacesEvent event){      
    if(event.getPhaseId() != PhaseId.INVOKE_APPLICATION){
        event.setPhaseId(PhaseId.INVOKE_APPLICATION);
        event.queue();
        return false;
    }       
    return true; …
Run Code Online (Sandbox Code Playgroud)

java jsf icefaces icefaces-1.8 jsf-1.2

0
推荐指数
1
解决办法
3994
查看次数

关于UI组件状态和阶段的几个问题

经历了这些优秀的帖子:

为什么JSF会在服务器上保存UI组件的状态?

为什么JSF保存组件树状态?

在JavaEE6教程的中途,我仍然有以下问题:

  1. 当我开发一个自定义UI组件,其值(styleClass,value等)是静态定义的(在xhtml中)或通过bean设置时,我是否还需要在扩展组件中显式保存/恢复状态?
  2. 说UI组件的范围是视图作用域是否正确?
  3. 视图如何识别行为?(如果我离开视图,视图将在下一次重建.但是如果我打开另一个选项卡,它将被恢复 - 至少是bean!)
  4. 当我执行Ajax调用时,我希望UI组件的"执行"部分将被恢复和处理,并且"渲染"部分将被恢复和更新.在遇到UI的一些问题之后:重复,不清楚组件树的恢复范围以及是否可以部分编辑.作为一个例子(我不确定它是这样工作的):我定义了一个UI:重复迭代某些值并创建一些Ajax命令链接.每当我调用该命令时,无论我定义的Ajax范围(执行/渲染)如何,它都将恢复整个ui:repeat.所以它将重新渲染整个ui:重复.此外,我不明白它是如何永远不能恢复ui:repeat因为它是一个命名容器,它将编辑我新添加的组件的id.
  5. 如何定义构建时组件(vs渲染时)以及为什么要这样做?(与渲染时混合似乎构建时间组件很麻烦,为什么两者都有)

谢谢

jsf jsf-2

0
推荐指数
1
解决办法
1268
查看次数

在primefaces treeTable中添加和删除节点

我有这个:

<p:treeTable id="#{treeTableId}" value="#{tableBeanRoot}" var="element"
    resizableColumns="true"
    selection="#{budgetTemplateElementBean.selectedNode}"
    selectionMode="single" widgetVar="#{treeTableId}widget">

    <f:facet name="header">

    </f:facet>

    <p:column style="width:150px"> 
             .....
    </p:column>
             .....
    <f:facet name="footer">
        <p:commandButton value="#{msg.addChildNode}"
            actionListener="#{actionBean.addChildNodeAction}"
            process="@this,#{treeTableId}" update="#{treeTableId} :growl" />
        <p:commandButton value="#{msg.deleteNode}"
            actionListener="#{actionBean.deleteNodeAction}"
            process="@this,#{treeTableId}" update="#{treeTableId} :growl" />
    </f:facet>
</p:treeTable>
Run Code Online (Sandbox Code Playgroud)

如何在Primefaces treeTable中添加和删除treeNodes?我可以把什么东西放回去?

谢谢

jsf primefaces

0
推荐指数
1
解决办法
8280
查看次数

引发者:javax.naming.NameNotFoundException - 名称[Class/object]未绑定在此Context中

有一个问题,从6小时后处理,但没有解决它.

我正在使用JSF/Tomcat 7/Maven/Java 7开发动态Web项目

每次我在服务器上运行项目时都会得到:

javax.naming.NameNotFoundException: Name [....ProjectManagement/service] is not bound in this Context. Unable to find [de.hhn.team3.artzpraxismanagement.ProjectManagement].
at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
at org.apache.catalina.core.DefaultInstanceManager.lookupFieldResource(DefaultInstanceManager.java:580)
at org.apache.catalina.core.DefaultInstanceManager.processAnnotations(DefaultInstanceManager.java:470)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:157)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
at org.apache.myfaces.config.annotation.Tomcat7AnnotationLifecycleProvider.postConstruct(Tomcat7AnnotationLifecycleProvider.java:90)
at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:213)
at org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.createManagedBean(ManagedBeanResolver.java:333)
at org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.getValue(ManagedBeanResolver.java:296)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:169)
at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:65)
at org.apache.myfaces.el.convert.VariableResolverToELResolver.getValue(VariableResolverToELResolver.java:123)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:169)
at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:72)
at org.apache.el.parser.AstValue.getValue(AstValue.java:161)
at org.apache.el.parser.AstEqual.getValue(AstEqual.java:38)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
at org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:96)
at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:263)
at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1089)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:733)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:758)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:758)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1900)
at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:115)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199) …
Run Code Online (Sandbox Code Playgroud)

jsf tomcat ejb java-ee cdi

0
推荐指数
1
解决办法
2568
查看次数

尝试在JSF页面中显示List <String>时出现java.lang.NullPointerException

当我尝试在JSF页面中显示Java List<String>国家时,我在JSF页面中遇到了非常奇怪的问题.这是代码:

 private List<String> listCountries;

    // Get the list with Countries
    public List<String> getlistCountries() { 
        // Generate List of Countries
        initlistCountries();
        return listCountries;
    }

    public void initlistCountries(){
        listCountries.add("Afghanistan");
        listCountries.add("Albania");
        listCountries.add("Algeria");
        listCountries.add("Andorra");
        listCountries.add("Angola");
        ......
    }
Run Code Online (Sandbox Code Playgroud)

这段代码是否正确?我不能使用,@PostConstruct因为我已经使用它了.

加载JSF页面时出现错误:

java.lang.NullPointerException
    at com.DX_57.AC_57.AddAccount.initlistCountries(AddAccount.java:344)
    at com.DX_57.AC_57.AddAccount.getlistCountries(AddAccount.java:339)
Run Code Online (Sandbox Code Playgroud)

java jsf jsf-2

-1
推荐指数
1
解决办法
323
查看次数

如何在JSF表中更改链接颜色

我有一个JSF表:

在此输入图像描述

正如您所看到的,列的名称是基本的html链接.有没有办法删除名称的下划线?还要改变名字的颜色?感谢您的帮助.

<div id="settingsHashMap" style="width:1050px; height:400px; position:absolute;  background-color:r; top:20px; left:1px">

                <h:form id="form" >
                    <p:growl id="growl" showDetail="true" sticky="true" />
                    <!-- The sortable data table -->
                    <h:dataTable onmouseover="addOnclickToDatatableRows();" id="dataTable" value="#{AccountsController.dataList}" binding="#{table}" var="item">
                        <!-- Check box -->
                        <h:column>
                            <f:facet name="header">
                                <h:selectBooleanCheckbox value="#{AccountsController.mainSelectAll}" class="checkall" >
                                    <f:ajax listener="#{AccountsController.selectAll}" render="@form" />
                                </h:selectBooleanCheckbox>
                            </f:facet>
                            <h:selectBooleanCheckbox  onclick="highlight(this)" value="#{AccountsController.selectedIds[item.userid]}" >
                                <!-- if the user deselects one row deselect the main checkbox -->
                                <f:ajax listener="#{AccountsController.deselectMain}" render="@form" />
                            </h:selectBooleanCheckbox>
                            <!-- Click on table code -->  
                            <h:outputLink id="lnkHidden" value="AccountProfile.jsf" style="text-decoration:none; color:white;">
                                <f:param …
Run Code Online (Sandbox Code Playgroud)

javascript css jsf jsf-2

-1
推荐指数
1
解决办法
7842
查看次数

<h:graphicImage>垂直对齐

我有这个图像:

<h:graphicImage library="images" name="lighton.png" height="22" rendered="#{mController.dothat}" />
Run Code Online (Sandbox Code Playgroud)

我需要垂直对齐一个字段.

手动添加(例如通过firebug)align ="absmiddle"到生成的<img/>标签确实有效.然而,将它添加到graphicImage标记,什么都不做.

jsf jsf-2

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

java.io.NotSerializableException:org.primefaces.model.DefaultStreamedContent

我有一个简单的jsf 2.1,以前可以使用primefaces 3.4在Java EE 6上正常工作。

当我迁移到glassfish 4.0和primefaces 5.1时,每次在Netbeans上重新部署项目时,都会遇到以下异常:

java.io.NotSerializableException:org.primefaces.model.DefaultStreamedContent

java.io.NotSerializableException:org.primefaces.component.datatable.DataTable

即使抛出此异常,项目也将正确部署并运行!

有什么事吗

jsf primefaces jsf-2.2

-1
推荐指数
1
解决办法
3283
查看次数

使用PrimeFaces验证

我有一个带有一个字段的表单,emai有一个非常简单的验证required = true.现在,当我点击按钮时,它会执行AJAX回调.我想知道无论如何在客户端进行验证而不调用服务器?

<h:form class="lfrm" id="lfrm">
    <p:panel id="lpanel" header="Login">
        <p:messages id="lmessages" showDetail="true" autoUpdate="true"/>

        <h:panelGrid id="lgrid" columns="2" cellpadding="5">
            <h:outputText value="Email: *" />

            <p:inputText styleClass="email"
                         id="lemail"
                         value="#{Registration.user.email}"
                         required="true" requiredMessage="Email is required">
            </p:inputText>

            <p:commandButton process="lemail"
                             value="Sign in"
                             immediate="true"
                             validateClient="true"/>
    </p:panel>
</h:form>
Run Code Online (Sandbox Code Playgroud)

jsf primefaces

-1
推荐指数
1
解决办法
573
查看次数

验证输入编号的范围是1到60

我有一个输入文本字段如下.

<h:inputText id="number" maxlength="3" value="#{bean.entity.number}" />
Run Code Online (Sandbox Code Playgroud)

我想验证数字是否为1到60,否则显示错误.我怎样才能做到这一点?

validation jsf range jsf-2

-1
推荐指数
1
解决办法
2028
查看次数

标签 统计

jsf ×10

jsf-2 ×5

primefaces ×3

java ×2

cdi ×1

css ×1

ejb ×1

icefaces ×1

icefaces-1.8 ×1

java-ee ×1

javascript ×1

jsf-1.2 ×1

jsf-2.2 ×1

range ×1

tomcat ×1

validation ×1