`

richfaces ajax特性的一点小提示(为什么数据传不到后台去?)

    博客分类:
  • JSF
阅读更多

问题描述:

页面文件:

<h:outputText value="类型:" id="assessType_inputtext"></h:outputText>
<h:selectOneListbox size="1" id="assessTypeId"
	value="#{agcExceptionDataBackBean.assessTypeId}">
	<f:selectItems value="#{agcExceptionDataBackBean.agcSelectItems}"/>
	<a4j:support event="onchange" reRender="outputPanelId" />
</h:selectOneListbox>
<h:panelGrid columns="3"
	rendered="#{agcExceptionDataBackBean.view}">
	<h:outputText value="容量:" id="realAdjustCapacity_outputtext" />
	<h:inputText id="realAdjustCapacity_inputtext"
		value="#{agcExceptionDataBackBean.currentAgcExceptionData.realAdjustCapacity}">
		<a4j:support  ajaxSingle="true"
			event="onblur" reRender="realAdjustCapacity_message" />
	</h:inputText>
	<a4j:outputPanel id="realAdjustCapacity_message"
		ajaxRendered="true" styleClass="pfoutpanel">
		<h:message for="realAdjustCapacity_inputtext"></h:message>
	</a4j:outputPanel>
</h:panelGrid>
<a4j:commandButton value="保存"
	action="#{agcExceptionDataBackBean.createAgcExceptionData}"
	styleClass="pfbutton">
</a4j:commandButton>

 
ManagerBean的方法:

public boolean isView() {
	if (getAssessTypeId() != null) {
		AssessType type = assessTypeService.get(assessTypeId);
		CommonGenerator gen = commonGeneratorService
				.getByGeneratorCode(generatorCode);
		if (type != null
				&& type.getAssessTypeName().equals("不达标")) {
			return true;
		}
	}
	return false;
}

public Long getAssessTypeId() {
	return assessTypeId;
}

 根据”类型“来判断”容量“这个panelGrid是否显示
当容量显示时,并输入数据如:100
当点保存,照理说会把容量的数据100传到后台去。
但是它并没有传。
跟了一下代码,原来在ApplyRequestValue这个生命周期中h:panelGrid 的processDecode
系统会先去检查h:panelGrid是否渲染,而此时的类型数据assessTypeId还没更新到模型中去(是在UpdateModel生命周期执行)。
所以getAssessTypeId()返回null
isView()也有返回false
因此就不会processDecode容量,因此它的数据也就不会传到后台

 

解决方法:

可以改变getAssessTypeId()方法:

public Long getAssessTypeId() {
	if (assessTypeId == null) {
		String temp = FacesContext.getCurrentInstance()
				.getExternalContext().getRequestParameterMap().get(
						"formId:assessTypeId");
		if (temp != null) {
			assessTypeId = Long.valueOf(temp);
		}
	}
	return assessTypeId;
}

 上面的方法,把数据提前取出来。
我觉得不是王道,不知道有没有更好的方法?

 

生命周期图:

 

 

  • 大小: 45.9 KB
分享到:
评论

相关推荐

    RichFaces中的Ajax组件的使用指南

    ### RichFaces中的Ajax组件使用指南 #### 一、引言 在现代Web开发中,Ajax技术因其能够实现实时更新页面部分元素而不刷新整个页面的能力而受到广泛欢迎。RichFaces作为一个增强JSF(JavaServer Faces)功能的开源...

    seam+jsf+richfaces+ajax4jsf 电子书

    Seam、JSF、RichFaces 和 Ajax4jsf 是四个重要的Java Web开发框架和技术,它们在构建现代、交互式Web应用程序中发挥着关键作用。让我们深入探讨这些技术及其结合使用时的知识点。 **1. Seam** Seam是一个开源的Java...

    RichFaces中的ajax组件实现刷新验证码

    在探讨“RichFaces中的ajax组件实现刷新验证码”的技术细节时,我们首先需要理解RichFaces框架以及AJAX在其中的应用。RichFaces是一个基于JavaServer Faces(JSF)的开源UI组件库,它提供了丰富的用户界面组件,包括...

    JSF2项目XHTML RichFaces AJAX.zip

    **AJAX**(Asynchronous JavaScript and XML)是一种创建动态网页的技术,通过在后台与服务器进行少量数据交换,可以在不重新加载整个页面的情况下更新部分网页内容。在JSF2中,通过使用AJAX,用户可以在不离开当前...

    richfaces实现ajax带进度条的上传

    "RichFaces"是一个功能强大的JavaServer Faces (JSF)组件库,它提供了丰富的用户界面元素和Ajax功能,使得开发人员能够构建出更加动态和交互性强的网页应用。本教程将详细讲解如何利用RichFaces实现带有进度条的AJAX...

    JSF+RichFaces(Ajax4jsf)框架示例

    **RichFaces组件**:除了基本的JSF组件外,RichFaces框架提供了许多增强型组件,比如数据网格、滑块、日历、对话框等,这些组件具有内置的AJAX支持,可以在不重新加载整个页面的情况下更新部分视图。在`jsf.jsp`和`...

    richfaces-ui-3.2.1

    AJAX技术允许Web应用在后台与服务器进行异步通信,用户可以在不离开当前页面的情况下获取和提交数据。而AJAX4JSF是RichFaces提供的一个桥梁,它将AJAX技术与JSF框架紧密结合,使得开发者可以利用JSF的生命周期和组件...

    seam+jsf+richfaces+ajax4jsf打包了

    RichFaces的中文标签讲解将深入解释每个组件的用法、属性和事件,让开发者可以轻松地为应用添加诸如数据表格、图表、日历、对话框等复杂功能。 **Ajax4jsf** Ajax4jsf是另一个增强JSF功能的库,专注于利用AJAX技术...

    richfaces参考文档

    RichFaces 是基于 AJAX 的 JSF 组件库,它允许开发者在不离开服务器端的情况下更新页面的部分内容,从而提高用户体验。它不仅包含了一系列的组件,如数据表、树形结构、日历、图表等,还提供了事件处理、皮肤定制...

    richfaces中文开发文档

    **一、RichFaces的主要特性** 1. **AJAX支持**:RichFaces的核心功能之一是其对Ajax技术的集成,允许开发者创建部分页面更新的应用,提升用户体验,减少不必要的页面刷新。 2. **组件丰富**:提供了一系列预构建的...

    richfaces3.3.1官方demo的源代码

    RichFaces是一个功能强大的AJAX组件库,基于JavaServer Faces (JSF) 技术,为开发者提供了丰富的用户界面组件和交互性功能。在3.3.1版本中,它提供了大量的示例代码,帮助开发者更好地理解和运用这个框架。本文将对...

    richfaces详细使用

    RichFaces作为一款开源框架,以其强大的Ajax能力、丰富的组件库以及高度可定制的特性,在JavaServer Faces(JSF)环境中独树一帜。本文旨在深入探讨RichFaces的核心功能、组件开发流程以及资源管理和皮肤技术支持,...

    Richfaces ShowCase离线包

    Richfaces包含了一系列的富客户端组件,如数据网格、图表、日历、滑块等,这些组件支持AJAX技术,能够在不刷新整个页面的情况下更新部分网页内容,从而提高了应用的响应速度和用户体验。 **在线演示.txt** 文件可能...

    richfaces+jsf

    富Faces(RichFaces)是一个开源的用户界面组件库,它构建在JavaServer Faces(JSF)框架之上,为开发者提供了丰富的AJAX功能和视觉效果。JSF是Java平台上的标准MVC(模型-视图-控制器)框架,用于构建和维护可重用的、...

    Richfaces组件使用指南

    RichFaces是一个开源框架,专注于将Ajax功能无缝集成到JavaServer Faces(JSF)应用程序中,无需依赖JavaScript。这个框架充分利用了JSF的生命周期、验证、转换工具以及资源管理功能。它提供的Ajax支持是完全集成到...

    richfaces官方demo

    通过研究这个“RichFaces官方Demo”,开发者可以学习到如何在JSF应用中集成和使用RichFaces组件,理解AJAX在Web开发中的作用,以及如何利用JSP进行前端呈现。同时,这也有助于提升对Java EE应用服务器,特别是JBoss...

    jboss-richfaces-3.0.0

    在版本3.0.0中,RichFaces为开发者提供了大量的可重用组件,这些组件不仅具有美观的用户界面,还支持异步数据处理,显著提高了Web应用的交互性和用户体验。 **二、核心特性** 1. **AJAX支持**:RichFaces 3.0.0引入...

    RichFaces4.5 JavaApi JSApi

    例如,`org.richfaces.component.UIAjaxBehavior`接口允许开发者添加异步行为到JSF组件,实现AJAX功能。此外,`org.richfaces.model.SelectItem`类用于创建可选的下拉框或列表项,提供更灵活的数据绑定选项。`org....

    richfaces-3.0.0

    7. **数据绑定:** RichFaces 支持 EL(表达式语言)进行数据绑定,将 UI 控件的值与后台bean的属性关联起来。 8. **国际化和本地化:** RichFaces 提供了对多种语言的支持,方便创建多语言应用。 9. **源码学习:...

Global site tag (gtag.js) - Google Analytics