当前位置: 首页 > 知识库问答 >
问题:

JSF在操作方法之前更新支持bean属性

晏兴发
2023-03-14

我通过JSONP获取一个值到我的网页。现在我想用这个值更新一个支持bean属性?如何处理?提前谢谢。

更新:好的,我的问题是有JavaScripts、JSF Ajax调用和Webservices,我必须看看什么时候触发了哪个动作。我想我需要更详细地描述我的处境。

我的支持bean:

logger.debug("CaseController - save(): tempCaseId [ " + tempIshCaseId + "];");

我的xhtml页面:

<!-- JSONP-Wert in die Bean hieven -->
<t:div id="tempIshCaseIdContainer">
    <h:outputText id="setTempIshCaseId" value="#{CaseController.tempIshCaseId}" />
</t:div>
<a4j:commandLink id="preSaveCaseButton" onclick="setTempIshCaseId();" title="..."
    reRender="jsonpRemoteURLs,hNumberRemoteURL,eNumberRemoteURL,ishCaseRemoteURL,tempIshCaseIdContainer" oncomplete="jQuery('a#form_saveCaseButton').click()">
</a4j:commandLink>
<a4j:commandLink id="saveCaseButton" title="..." reRender="serverWarningsParent"  action="#{CaseController.save}" onclick="if (validateCaseFormEntries(){ closeCaseWarningsBox(); } else { return false; }" oncomplete="if (#{CaseController.success}){ showCaseModalPanel(); patientConsistencyCheck(#{NavigationController.globalErrorState}, '#{PatientController.patienlistUrl}'); startJsonpSetters(); saveCase(); initializeFocusBlurEvents();} else { return false;}">
</a4j:commandLink>
<a4j:commandLink id="postSaveCaseButton" onclick="hideCaseModalPanel();" reRender="caseContainer,modifiedContainer">
</a4j:commandLink>

我的Javascript文件:

function setTempIshCaseId(){// setze den Wert des a4j-value-Elements
var ishCaseId = jQuery('#form_ish').val();
jQuery('#form_setTempIshCaseId').text(ishCaseId);
}

页面渲染后我有三个阶段。preSaveCaseButton应该更新所有JSONP-Urls,这是必要的,因为否则系统将产生Token-Timeout并抛出异常。saveCaseButton将触发bean操作并将编辑后的setTempIshCaseId保存到数据库中,如果它是有效的。总而言之,我想我只需要确保,当调用preSaveCaseButton时,我更新了bean,正如您所看到的,我尝试使用“进程”-属性。紧接着saveCaseButton将被调用,我可以检查bean值。不幸的是,我的log4j-loging-mail告诉我我的后备bean具有值”(temIshCaseId = '') 并且没有更新。

要知道什么?

共有1个答案

宦正诚
2023-03-14

只需发送一个具有该值的请求参数。你是如何提交表单的还不完全清楚,但你可以使用其他的

<h:inputHidden id="hidden" value="#{bean.property}" />

在JS端,只需使用获取的值更改其值,如下所示:

document.getElementById("form:hidden").value = fetchedValue;

 类似资料:
  • 有没有一种方法让JSF支持bean导致页面上组件的更新?我不希望使用带有update属性的ajax组件来更新页面上的组件。我需要从JSF backing bean方法中触发更新。注页面上的更新可能发生在此方法完成之后或完成之前。我正在使用PrimeFaces,如果使用PrimeFaces有一个解决方案的话。

  • 我正在尝试更新数据库中的记录,但收到此错误 这是我的hql尝试 经过研究,我在方法的顶部添加了@修改注释,但错误仍然存在。请问怎么了?

  • 我正在使用一个无线电组件,当选择一个项目时,我想在该组件上执行对支持bean的操作(不是导航到结果页面,而是执行一些操作,然后通过Ajax更新当前页面)。问题是我无法让支持bean值更改侦听器操作执行 还有背豆法... 代码中是否有我遗漏的错误?我使用了相同的结构来选择多个复选框,这是有效的。。。

  • 背景: 我有一个支持bean,它有上传方法,可以在上传文件时监听。现在我将这个文件传递给解析器,并且在解析器中对csv文件中存在的行进行验证检查。 若验证失败,我必须记录信息并保存在数据库的日志表中。 我的最终目标: 就是在日志bean中获取会话信息,这样我就可以获取并调用将数据保存到数据库中。 正在发生什么: 在我的上传支持bean中,我正在获取会话,但当我调用解析器时,我不会传递会话信息,因为

  • null null null 道: 处理与业务逻辑层的所有交互的非bean对象。它加载数据bean并准备提交,等等。我通常把它作为一类公共静态方法。 转换器、验证器: null 这似乎是一般JSF应用程序所需的全部内容。我已经阅读了以下内容:http://java.dzone.com/articles/making-distinctions-between,以及这里的回复:JSF backing

  • 我在jsf页面中使用primefaces惰性数据表,如下所示: 如您所见,dataTable上方有一个搜索面板,其中包含用户可以通过填充它们来缩小结果的参数。支持bean中的每个搜索字段都有一个对应的属性,如下所示。 当我按下“searchButton”时,后台bean得到更新,它包含用户输入的“searchField”值。但是,当我尝试使用“recordId”列上的排序箭头对网格进行排序时,我的