繁体   English   中英

使用麻烦 <f:ajax> 在JSF 2.0上

[英]Trouble using <f:ajax> on JSF 2.0

上周,我在这里发布了一个关于将J2EE与Ajax结合使用的问题,并得到了有关支持JSF 2.0的Ajax构建的答案。 不幸的是,我似乎无法获得任何这样的例子!

我已经尝试过将不同的IDE与不同的服务器一起使用,但是无法使该基本示例正常工作。

会话范围的托管bean:

public class testBean 
{
    private String name;

    public testBean() {}


    public String getName(){
        return name;
    }

    public void setName(String name){
        this.name = name;
    }
}

和xhtml页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">
<head>
  <title>Default title</title>
</head>

    <body>

        <h:form id="testForm"> 

            <h:inputText id="test" value="#{testBean.name}" > 
                <f:ajax event="keyup" render="testForm:name" execute="testForm:test"/> 
            </h:inputText> 


            <h:outputText id="name" value="#{testBean.name}" /> 
        </h:form>   

    </body>

</html>

据我所知,该页面应该在紧靠inputText表单的位置显示正在编写的文本,但这并没有发生。

我讨厌就大致相同的事情提出两个主题,但是我真的不知道这里出了什么问题,从我读过的这段代码应该能奏效的地方来看。

您在f:ajax指定了错误的事件。 使用keyupkeypress而不是click

<h:inputText id="test" value="#{testBean.name}" > 
  <f:ajax event="keyup" render="name" execute="test"/> 
</h:inputText>

仅单击鼠标即可触发onclick / click事件处理程序。

更新:

之前没有注意到:

我认为您应该使用<h:head>而不是<head>来正确包含ajax的所有JavaScript资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM