使用时遇到问题关于 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 表单旁边写入时所写入的文本,但这并没有发生。
我讨厌制作两个关于大致相同的事情的主题,但我真的不知道这里出了什么问题,从我读过的内容来看,这段代码应该可以工作。
I posted a question here last week about using Ajax with J2EE and got and answer about the build in support of ajax with JSF 2.0. Unfortunately I just cant seem to get any example of this to work!
I have tried out using different IDEs with different servers but I cant get this basic example to work.
A session scoped managed bean:
public class testBean
{
private String name;
public testBean() {}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
}
And the xhtml page:
<!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>
From my knowledge the page should display the text that is written while it is being written right next to the inputText form, but that is not happening.
I hate making two topics about roughly the same thing but I really dont know whats wrong here, from what Ive read this code should work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您在
f:ajax
中指定了错误的事件。使用keyup
或keypress
而不是click
:onclick / click 事件处理程序仅由鼠标单击触发。
更新:
之前没有注意到:
我认为你应该使用
而不是来包含所有内容正确使用 ajax 的 javascript 资源。
You have the wrong event specified in your
f:ajax
. Usekeyup
orkeypress
instead ofclick
:the onclick / click event handler is only fired by a mouse click.
UPDATE:
Didn't notice it before:
I think you should use
<h:head>
instead of<head>
to include all javascript resources for ajax correctly.