jsf-2 – 单个f:viewParam对ViewScoped bean上的回发(ajax)请求
发布时间:2020-12-16 02:47:07 所属栏目:百科 来源:网络整理
导读:我将一个请求参数传递给facelet页面,该页面在相应的preRenderView事件/侦听器中处理: ui:define name="metadata" f:metadata f:viewParam name="id" value="#{essayDetails.id}" / f:event type="preRenderView" listener="#{essayDetails.init}"/ /f:metad
我将一个请求参数传递给facelet页面,该页面在相应的preRenderView事件/侦听器中处理:
<ui:define name="metadata"> <f:metadata> <f:viewParam name="id" value="#{essayDetails.id}" /> <f:event type="preRenderView" listener="#{essayDetails.init}"/> </f:metadata> </ui:define> 正确访问Init方法并正常呈现页面.我有一个commandLink(RichFaces组件),通过ajax请求显示模式面板: <a4j:commandLink rendered="#{essayDetails.comment}" render="create_comment_group" oncomplete="#{rich:component('create_comment_panel')}.show()"> <h:graphicImage library="images/icons" name="comment.png" /> </a4j:commandLink> 模态面板片段: <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:utils="http://java.sun.com/jsf/composite/components/utils"> <rich:popupPanel id="create_comment_panel" autosized="true"> <f:facet name="header"> <utils:labeledIcon label="#{msg.action_comment}" image="icons/comment.png" /> </f:facet> <h:form> <h:panelGroup id="create_comment_group"> <h:inputTextarea cols="80" rows="8" value="#{essayDetails.userComment}" style="resize: none;" /> <table style="width: 100%"> <tr> <td style="width: 50%;text-align: right;"> <a4j:commandButton value="#{msg.button_create}" action="#{essayDetails.saveComment}" execute="create_comment_panel_essay" render="essay_comments" oncomplete="#{rich:component('create_comment_panel')}.hide()" /> </td> <td style="width: 50%;text-align: left;"> <a4j:commandButton value="#{msg.button_cancel}" execute="@none" oncomplete="#{rich:component('create_comment_panel')}.hide()" /> </td> </tr> </table> </h:panelGroup> </h:form> </rich:popupPanel> 在此面板中,注释插入ah:inputTextArea字段,但是当按下相应的Accept按钮而不是调用#{essayDetails.saveComment}方法时,回发请求在验证f:viewParam id参数时失败,说明此字段需要值. 如果我们不对原始代码进行任何更改,但添加了额外的f:viewParam: <ui:define name="metadata"> <f:metadata> <f:viewParam name="id" value="#{essayDetails.id}" required="true" /> <f:viewParam name="v" value="#{essayDetails.v}" required="true" /> <f:event type="preRenderView" listener="#{essayDetails.init}"/> </f:metadata> </ui:define> 没有验证错误,行为符合预期.在使用f:viewParam和/或preRenderView事件时我做错了什么? 提前致谢! 解决方法
试试这个:
<f:viewParam name="id" value="#{essayDetails.id}" required="#{not facesContext.postback}" /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Swift 2.0学习笔记(Day 1)——我的第一行Swift代码
- 在Xcode Commit注释中关闭拼写检查
- jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
- ajax调用Webservice
- camel Direct and import the routes from another XML fil
- NBU备份oracle全备脚本注释
- xcode – 在Swift应用程序中使用Quickblox.framework
- GDataXML之解析XML
- quick-cocos2d-x游戏开发【12】——硬件按键事件
- makefile – VSCode Task将$Parameter传递给命令?