Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java <;a4j:commandbutton>;不';t show<;h:消息>;根据其动作方法创建_Java_Ajax_Jsf_Message - Fatal编程技术网

Java <;a4j:commandbutton>;不';t show<;h:消息>;根据其动作方法创建

Java <;a4j:commandbutton>;不';t show<;h:消息>;根据其动作方法创建,java,ajax,jsf,message,Java,Ajax,Jsf,Message,我启用了一个inputtext,旁边有一个id=subjectButton。当我填写该inputtext并单击按钮时,第一个禁用的inputtext会显示在第一个上方,显示添加的内容。对于启用的inputtext上的每个内容,其上方会出现一个新的禁用内容 当我点击subjectButton时,如果已填充,则会出现上述情况,但如果是空的,我希望旁边会出现一个,表示无法插入空主题。只有我单击按钮,该消息才会出现。在下面的代码中,我正在尝试这样做,看: <a4j:outputPanel id=

我启用了一个
inputtext
,旁边有一个
id=subjectButton
。当我填写该
inputtext
并单击按钮时,第一个
禁用的inputtext
会显示在第一个上方,显示添加的内容。对于
启用的inputtext
上的每个内容,其上方会出现一个新的禁用内容

当我点击
subjectButton
时,如果已填充,则会出现上述情况,但如果是空的,我希望旁边会出现一个
,表示无法插入空主题。只有我单击按钮,该消息才会出现。在下面的代码中,我正在尝试这样做,看:

 <a4j:outputPanel id="subjectPanel">
    <br />
    <h:outputText value="Subjects:"/>
    <br />
    <a4j:repeat value="#{insertDocController.moreSubjects}" var="bean">     
    <h:inputText id="inputSubject" value="#{bean.subject}" disabled="true"/>
      <a4j:commandButton type="submit" action="#{insertDocController.removeSubject(bean.subject)}" 
         value="Remove" render="subjectPanel" execute="@this" />

    </a4j:repeat>
    <br />
    <h:inputText id="inputSub" value="#{insertDocController.currentSubject}"/>


    <a4j:commandButton id="subjectButton" value="Insert"
                     action="#{insertDocController.addSubject}" 
                     render="subjectPanel inpuSubject subjectMessage"
                     execute="@this inputSub">
    </a4j:commandButton> 
      <h:message for="inputSub" id="subjectMessage" style="color:red"  />
    <br />
    </a4j:outputPanel>
当我点击按钮,输入文本为空时,调用了
addSubject()
,并设置了消息,因为我在
addSubject()
-(上面的代码中也显示了该测试):

消息会打印在控制台上

有什么问题吗


谢谢大家!

您能否确保将正确的客户端id传递给
ctx.addMessage()
?要进行验证,请打开Firebug的HTML面板(或您的浏览器的等效程序),找到
,并记下JSF设置的真实id;尝试将该id传递给
ctx.addMessage()

如果这不起作用,请在按下按钮时检查Firebug的网络面板和服务器发送的响应。
渲染是否正确

与此无关,您正在呈现整个
,因此在
中,其他id可能是多余的。

需要组件的clientId,而不是消息id

试试这个:

ctx.addMessage("inputSub",msg);//inputSub as clientId
//clientId depends on the final generated id of the inputField
//it might be subjectPanel:inputSub or formId:inputSub

是什么阻止您在
上使用
required=true
?它仍然没有出现。您必须使用chrome或firefox检查元素,并查看最终生成的inputfield id。它可能是
subjectPanel:inputSub
so
ctx.addMessage(“subjectPanel:inputSub”,msg)成功了!id是表单:inputSub。非常感谢你!我在这里学习的越来越多@Luciane您也可以使用
ctx.addMessage(null,msg)
并在您的页面中有一个全局
。感谢您提供的提示!id是表单:inputSub。现在开始工作了!
System.out.println("MSG  : " + msg.getSummary().toString());
ctx.addMessage("inputSub",msg);//inputSub as clientId
//clientId depends on the final generated id of the inputField
//it might be subjectPanel:inputSub or formId:inputSub