相关疑难解决方法(0)

如何在发送请求时从ManagedBean重定向是一个Ajax请求?

我正在使用PrimeFaces和JSF2.我试图通过发送登录名和密码作为Ajax请求来验证用户.在支持bean的action方法中,我试图验证用户并在验证成功时重定向到新视图.

使用primefaces时这可能吗?

因为我认为使用primefaces' p:commandButton,我只能有ajax行为或导航.

navigation ajax primefaces jsf-2 managed-bean

16
推荐指数
2
解决办法
4万
查看次数

JSF 2.0 AJAX:使用jsf.ajax.request(或其他方式)从javascript调用bean方法

一些背景:我正在构建一个自定义的JSF组件.该组件基本上是一个文本编辑器,它应该有一个"保存"按钮,用于保存编辑器的内容字符串.当我使用CodeMirror库时,我需要使用javascript从编辑器中获取内容(字符串)并将其发送到服务器.因此,在这种情况下我不能使用基于XML的JS调用等f:ajax.

问题:我计划发送字符串jsf.ajax.request,但它不直接支持在bean上调用方法.如何以AJAX方式使用JSF调用bean中的方法?

至少有两种解决方法:

  • 在隐藏的输入字段中包含隐藏的表单.从javascript更新inputfield,然后调用jsf.ajax.request发布该表单.如果需要,可以在属性的getter或setter中调用自定义操作.
  • 使用raw XMLHttpRequest(或者可能在其他JS库的帮助下)执行请求.创建一个servlet并调用它.

两种方式都很笨拙,后者也突破了JSF的范围.

我错过了什么吗?你是怎么做到的?

有一个非常相似的问题,但给出的答案仅涉及基于XML的AJAX调用.还有另一个类似的问题,但它也指基于XML的AJAX调用.

javascript java ajax jsf jsf-2

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

如何使用本机JavaScript在HTML DOM事件上调用JSF托管bean?

我需要在HTML DOM load事件期间使用ajax执行JSF托管bean操作方法,类似于jQuery $(document).ready(function() { $.ajax(...) }).我只能在这个项目中使用JSF生成的JavaScript.有没有办法在原生JSF中做到这一点?我可以使用哪个事件或者我可以使用哪个JSF ajax函数?

我正在使用JSF 2.0,Facelets和PrimeFaces.

javascript ajax jsf facelets primefaces

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

当JavaScript的disabled属性更改为false时,Commandbutton不会调用操作

我在JSF + PrimeFaces中构建了Web应用程序.在Web表单中,我将primefaces的命令按钮的disable属性设置为true.在窗体输入字段上执行自定义客户端验证后加载窗体时,我根据窗体上的用户输入将命令按钮的disable属性设置为false或true. 注意:如果所有通过按钮的验证都获得启用,但同时如果用户编辑了某些输入并且验证失败,则再次按钮被禁用.

<p:commandButton id="saveButton" value="Save" actionListener="#{some method of bean}" 
update="component to update" disabled="true" />
Run Code Online (Sandbox Code Playgroud)

但按钮不能正常工作,我的意思是表格没有提交.

但是如果按钮的禁用属性在开始时没有设置为true,即使在自定义验证期间它也会被javascript禁用/启用(如上所述)它可以正常工作.

我无法理解这个表单submit-ion如何依赖于命令按钮的disabled属性的初始值,即使我通过javascript设置它.

以下是浏览器源代码中显示的HTML代码:

如果属性禁用设置为true:

<button id="saveButton" 
class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" 
type="submit" 
onclick="PrimeFaces.ab({formId:'createAccessPrivilegeForm',source:'saveButton',process:'@all',update:'centerPanel leftNavigationForm:leftNavigationTabView'});return false;" 
name="saveButton" 
role="button" 
aria-disabled="false">
Run Code Online (Sandbox Code Playgroud)

如果禁用属性设置为false:

<button id="saveButton" 
class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only ui-state-disabled" 
disabled="disabled" 
type="submit" 
onclick="PrimeFaces.ab({formId:'createRoleForm',source:'saveButton',process:'@all',update:'centerPanel leftNavigationForm:leftNavigationTabView'});return false;" 
name="saveButton" 
role="button" 
aria-disabled="true">
Run Code Online (Sandbox Code Playgroud)

帮我解决这个问题.我希望命令按钮最初只能被禁用,只有在验证通过后才会被禁用,我希望它能够获得表单提交.

javascript jsf primefaces jsf-2

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

标签 统计

ajax ×3

javascript ×3

jsf ×3

jsf-2 ×3

primefaces ×3

facelets ×1

java ×1

managed-bean ×1

navigation ×1