问题描述:
页面文件:
<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组件的使用配置以及组件的使用方法。是为初学者了解ajax组件提供一点方便
详细的阐述了RichFaces组件中如何实现验证码的刷新
seam+jsf+richfaces+ajax4jsf相关电子书,做个备份吧!网上也很多的!
JSF商品管理项目包含 XHTML RichFaces AJAX 里面有商品的增删查改操作
JSF+RichFaces(Ajax4jsf)框架示例
richfaces-ui-3.1.2的组件。AJAX基于jsf。全程是JBoss RichFaces ,不知道为什么在Exadel上找不到免费下载,还不清楚和Exadel RichFaces在代码中的关系到了什么程度。
Richfaces标签 简介Richfaces标签相关内容 初学者认知
内带最新的richfaces jar包,轻松实现多文件的上传
richfaces标签学习笔记richfaces标签学习笔记richfaces标签学习笔记richfaces标签学习笔记
RichFaces组件简介,复合组件,日期控件,Ajax标签, 轻松实现。RichFaces组件简介,复合组件,日期控件,Ajax标签, 轻松实现。RichFaces组件简介,复合组件,日期控件,Ajax标签, 轻松实现。
包括seam的中文手册,jsf中文教程,richfaces常用标签的讲解,ajax4jsf常用标签讲解
RichFaces是一个开源框架,它不借助于JavaScript而增加Ajax能力到存在的JSF应用程序中。
教会如何使用richfaces,及richfaces应用
这是richfaces 3.3.1的用户手册PDF版
对于jboss Richfaces3.3界面重用做了比较详尽的讲述。 在对界面了解的同时,也对Richfaces组件也能有进一步的了解。...对于richfaces与ajax的诸多关系,也做了介绍。是比较基础的文档。 找到适合自己的文档不容易。
Practical RichFaces JSF ajax
关于richfaces的一些比较好的资料,希望大家看了能有收获
richfaces3.1.4版的demo,运行在jboss和tomcat5.5下
Richfaces组件使用指南、richfaces手册(很详细、很全面的教程)
jboss的richfaces-ui-3.2.1.GA 同样受大小的限制,只上传jar包