2013-12-20 107 views
1

我刚刚完成了Balusc的JSF2教程,我遇到了由输入组件上的blur事件发送的ajax请求的问题。JSF2:Ajax请求和站点导航

我的网页设置了一个通用的侧边栏,其中包含h:link我的不同意见。 在我的意见之一,我用这样的代码:

<h:panelGrid columns="3"> 
    <h:outputLabel value="title" for="unitTitle"/> 
    <h:inputText id="unitTitle" value="#{unitOverview.unit.title}" label="title"> 
     <f:ajax event="blur" render="unitMessage"/> 
    </h:inputText> 
    <h:message id="unitMessage" for="unitTitle"/> 
</h:panelGrid> 

所以,当我导航到不同的网站,而使用输入组件之一,我得到一个http错误,因为ajax request和的同时向服务器发送完整的请求......

我是新来JSF,所以这些选项进入我的脑海里解决这个问题:

  1. 禁用模糊事件
  2. 创建另一个侧边栏组件,使用AJAX链接 - 并获得 的观点从一个应用范围的不同环节管理 豆

我有点不喜欢这两个选项,是有另一种选择,我没有想到的? “真实世界”应用程序如何解决这个问题?

在此先感谢

+0

你有没有进一步解决上述问题? –

+0

哦,有人忘了这篇文章,因为我没有时间学习更多的JSF。 其实你的答案没有解决这个问题,我仍然有不受欢迎的行为。 例如当我刚刚通过输入字段选项卡时,应该显示消息。 例如当我在输入字段中写入内容时,切换到另一个字段,再次切换回旧的,删除输入并单击另一个链接,我仍然有我在开始的问题:( 我想要的确切行为从模糊,只是没有ajax错误:/ – Patrick

回答

0

你是对的,发送ajax-和HTTP请求并行正常是不是一个好主意。

那么,请尝试使用change而不是blur。离开输入区时它也会被触发,但只有在发生真正的变化时才会触发。

此外,它可能是一个好主意,更新您的问题与持有最小化版本的完整问题(包括<h:form>)的xhtml,使问题在可能感兴趣的用户IDE中更易于理解和测试。 :-)

希望它有帮助...