【问题标题】:a4j:commandButton doesn't work inside rich:modalPanela4j:commandButton 在 rich:modalPanel 中不起作用
【发布时间】:2017-06-02 10:49:12
【问题描述】:

我正在使用 rich:ModalPanel 插入一些用户,但我的 commandButton 中的操作似乎没有响应。

<rich:modalPanel id="panel" moveable="true" top="150" width="400" autosized="true">   

<h:form id="uploadForm">  

     <a4j:outputPanel id="uploadOutputPanel">  

            <h:panelGrid id="uploadPanelGridId" columns="2">  

                  <h:inputText value="#{adminModele.checkerNumber}"/> 
  <a4j:commandButton value="save"
  action="#{OperationController.add}"
  oncomplete="if (#{facesContext.maximumSeverity==null}){#{rich:component('LogAddDownloadPanel')}.hide();}"/> 

                   <h:outputText value="Uploaded File Name : #{adminModele.checkerNumber}"/>  

             </h:panelGrid>  
   </a4j:outputPanel>  

 </h:form>  

</rich:modalPanel>  

【问题讨论】:

  • 它是否在您的支持 bean 中调用 add() 方法?在方法顶部打印一些东西并检查它是否打印。
  • 是的,我当然这样做了,如果我在 rich:modalPanel 外面按下按钮,它工作正常,但是当它在里面时,onCLick 不会采取任何行动
  • 如果您从按钮中删除 oncomplete 是否有效?
  • 不,它不起作用
  • 如果删除rich:modalPanel 会怎样?

标签: jsf richfaces


【解决方案1】:

通常您使用 bean 的名称但首字母“小写”来访问 bean: (适用于@Named@ManagedBean 或隐含添加范围,例如@RequestScoped)。

action="#{OperationController.add}"

您是这样明确命名 bean,还是您的意思是:

action="#{operationController.add}"

(来自您的adminModele,我假设后者...)

请记住,此表达式区分大小写,但您应该收到关于此的错误/警告:“无法解析变量名称”或类似的?

ps.:如果至少前两个字母是大写,则不适用:

...为了支持偶尔使用所有大写名称,我们检查是否 名称的前两个字符都是大写的,如果是这样 不要管它。例如,“FooBah”变成“fooBah”,“Z”变成 “z” “URL” 变成 “URL” 我们提供了一个方法 Introspector.decapitalize 它实现了这个转换规则。

因此,名为 URLController 的 Bean 不会以 uRLController 的身份访问,而是使用其原始名称。

【讨论】:

  • 不,我明确地将 bean OperationController 命名为大写
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
相关资源
最近更新 更多