小编Mur*_*zen的帖子

Primefaces Captcha消失或无效更新/刷新无效输入?

我在里面有一段代码 h:form

<h:panelGrid id="captchaGrid">
    <p:captcha id="captcha" label="Captcha" required="true"
        requiredMessage="required"
        validatorMessage="...">
    </p:captcha>
    <p:message id="captchaMessage" for="captcha" />
</h:panelGrid>

<p:commandButton id="submitButton" value="save"
    actionListener="#{userBean.save}" update="captchaGrid"
    onstart="doSomething()"
    oncomplete="doSomethingElse(xhr, status, args)" icon="ui-icon-check">
</p:commandButton>
Run Code Online (Sandbox Code Playgroud)

如果我正确输入验证码,这可以正常工作.但是,如果我输入的值无效,则验证码组件就会消失.

我尝试删除该update="captchaGrid"属性.这一次,验证码并没有消失.相反,它没有在视觉上刷新,但(我猜)在内部.因为正确键入两个单词仍会生成验证错误.

此外; 我不想用ajax="false".

更新:我也试过了oncomplete="Recaptcha.reload()".没工作.有一个错误.但我不知道这是我的代码还是Primefaces 3.0 :)

更新2:正如maple_shaft所指出的,事实证明这是Primefaces/Recaptcha的一个问题.所以我正在寻找你可能建议的任何肮脏的黑客.

任何帮助赞赏.

java jsf captcha java-ee primefaces

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

使用Ajax从DataTable中删除单行

我有一个JSF视图,列出了Primefaces中集合中的项目DataTable.最右边的列包含删除按钮.单击删除按钮时,应该进行Ajax调用,从会话变量中删除相应的项目Cart并就地更新视图.我希望请求和视图更改尽可能小.

以下是我为此目的所做的事情:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">

<h:head>
    <title>Register user</title>
</h:head>

<h:body>
    <f:view>

        <h:form id="itemsForm">

            <p:outputPanel id="items">
                <p:dataTable value="#{cart.itemList}" var="item">

                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="name" />
                        </f:facet>
                        <h:outputText value="#{item.product.description}" />
                    </p:column>

                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="quantity" />
                        </f:facet>
                        <h:outputText value="#{item.quantity}" />
                    </p:column>

                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="" />
                        </f:facet>
                        <p:commandButton icon="ui-icon-close" title="remove from cart">
                            <p:ajax listener="#{cart.removeItem}"
                                update="form:itemsForm"
                                process="@this" />
                        </p:commandButton>
                    </p:column>

                    <f:facet name="footer">  
                        Total amount: ${cart.totalAmount}
                    </f:facet>
                </p:dataTable>

            </p:outputPanel>
        </h:form>

    </f:view>
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

因此,我有以下方法 …

ajax datatable jsf primefaces

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

p:commandButton onclick中的EL表达式不会在ajax请求上更新/重新呈现?

onclick我的属性commandButton里面有一些EL依赖的Javascript.更具体地说,这是一段代码:

<p:commandButton
    onclick="javascript: if('#{userBean.user.friendList.size() gt 0}' == 'true') deleteFriendsConfirmDialog.show(); else friendsAlreadyDeletedErrorDialog.show();"
    value="Delete all friends?" />
Run Code Online (Sandbox Code Playgroud)

deleteFriendsConfirmDialog清除朋友列表并更新@form.朋友列表,commandButton和对话框都是这种形式.

所以我点击按钮,确认对话框出现(因为朋友列表的长度是gt 0),我确认并清空列表,视图更新.但是,当我Delete all friends?再次单击该按钮时,将再次出现确认对话框.由于列表的长度现在为0,因此我希望显示错误对话框.

我想,这是因为内部写的Javascript onclick没有更新(虽然按钮在表单中).

编辑:更改#{userBean.user.friendList.size() gt 0}#{not empty userBean.user.friendList}既不起作用也不起作用.

怎么会?这有什么不对?

任何帮助赞赏.:)

javascript jsf el primefaces

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

如何在Weblogic 10.3.x上利用EL 2.2功能?

我安装了Weblogic 10.3.5.我在服务器上部署了一个带有JSF 2.0和JSTL 1.2的WAR.但我也需要EL 2.2功能.我需要什么JAR?如果有人可以从头开始指导我一步一步的指导,那就太好了,因为我一直试图将这个问题设置好几个小时而没有运气.

java jsf weblogic el java-ee

2
推荐指数
1
解决办法
4763
查看次数

无法通过EL传递参数到方法 - javax.el.MethodNotFoundException

使用JSF 2.0和EL,我试图在POJO上调用一个方法,POJO是一个viewscoped bean的属性.该代码实际上是非常相似的@BalusC的教程在这里.当我调用一个不带参数的方法时,一切都很好.但是当我尝试调用一个带参数的方法时,我得到以下异常:

javax.faces.el.MethodNotFoundException: javax.el.MethodNotFoundException:
/user.xhtml at line 42 and column 32 action="#{users.user.removeFriend(friend)}":
Method not found: model.User@67f2b0dd.removeFriend()
Run Code Online (Sandbox Code Playgroud)

以下是一些更多细节:

user.xhtml

<f:metadata>
    <f:viewParam name="id" value="#{users.id}" />
    <f:event type="preRenderView" listener="#{users.init}" />
</f:metadata>

...

<h:form id="usersForm">
    <p:outputPanel>    
        <p:dataTable id="userTable" value="#{users.user.friendList}" var="friend">
            <p:column>
                <h:outputText value="#{friend.name}" />
            </p:column>
            <p:column>
                <p:commandButton action="#{users.user.removeFriend(friend)}"
                    ajax="true"
                    update="userTable somethingElse" process="@this"
                    onerror="errorDialog.show();"
                    icon="ui-icon-delete"
                    title="delete user">
                </p:commandButton>
            </p:column>
        </p:dataTable>
    </p:outputPanel>

    <p:commandButton action="#{users.user.removeAllFriends()}" ajax="true"
                update="userTable somethingElse"
                process="@this"
                icon="ui-icon-close"
                value="delete all friends?">
    </p:commandButton>


</h:form>
Run Code Online (Sandbox Code Playgroud)

我有以下ViewScopedbean:

Users.java

@ManagedBean(name = "users") …
Run Code Online (Sandbox Code Playgroud)

java jsf tomcat el primefaces

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

标签 统计

jsf ×5

primefaces ×4

el ×3

java ×3

java-ee ×2

ajax ×1

captcha ×1

datatable ×1

javascript ×1

tomcat ×1

weblogic ×1