2014-09-13 113 views
-1

我在我的形式下面的代码按钮:JSF commandLink不会调用后台bean的方法,先点击

<p:commandButton value="#{msgs['message.report.button.search.show']}" 
    icon="ui-icon-image" id="searchBtn" 
    process="@this" 
    actionListener="#{sixteenFormController.search()}" 
    update=":assetListForm"> 
</p:commandButton> 

当我按一下按钮第一次这么想的调用后台bean的方法。但在下一次它的工作正确。我每次都检查请求标题。对于第一次点击请求标题是:

assetListForm_SUBMIT=1 
javax.faces.partial.ajax=true 
javax.faces.partial.execute=searchBtn 
javax.faces.partial.render=assetListForm 
javax.faces.source=searchBtn 
searchBtn=searchBtn 

和第二点击:

assetListForm_SUBMIT=1 
javax.faces.ViewState=5LLh2g4iknGg3jt6KJ36nXF8zkcaHWvjQA7VyP8TZwTyqsEL3FtbchUbjpDpGamapf1UcXd7boDtNqJEmCRczCh95LNnr7zECPAaf7kdL3HVm04Il8TLlPrMfwhN8qVUQ7dpUuNFJN8douQpHAmi3p2hyfX1+yA8pAbzIvcKXU8fTqLwlZkFBjcDJVCG5AbDYsa0UIeckLkq9CdxrhUjUu5di/iwcSFhZmHYXVEUD3I8LyBLYPi7CNNjF9A1MBUAP8+eOy7EfkRi4HqQQcifnG61b04jANvzSmRbwwZhlBv6POOENqd9MQ+QVXbt7glrR8sv+A4L4DeFE49VGcRYkmt6f2AsbHg9hkVUnT2yewSFahrdbZ+jHQ92s9dqKCu54hMEma8gQ1rKjdl/0OZGH+sIvrhOBgoCShS5b7yILe0SzOpL1lYLRY331kvhpn/dz1wbZp1QgI3Ti6WpELABYHHt+3hz2qI21Hd1ivtQHuAtTqssTQt8Ne/9b0NPyXcdzuGkLnDdtbdnjURUQmP2UwJSQXPjyQrAwTlGGEEEG46v1U0/O+vOz4rpyIGlhyYi+ep9AqEKlIdDdMPPGerV8XTbtnYeKvSqht3m9M3Q1bzKjdl/0OZGH+sIvrhOBgoCShS5b7yILe3h5m76UOP4/3MimmxBWV7T7e/U8IjMZFuw0OnmGT9a72t/TxydgtiFX4mH+PRhO23X7M3DgDAKEq6EmpCziqr5MCY99K5xVcbg0uMJR3llgTZb948nWXUYGEVuCJagYHoalPbjRNWFNP3RWLvEwzPBpqZXgwnslnF73EpAZ1mSznouyqM0KX7c2HyNEuf3aHp8CU/rSINlftBjOWGz1gdVGcR9ckr0lpChHO4IwuqIjo0AiYqrIvDK3sKE2XXRxFTqA1Ixn6+qIR9h55r/17SX0znaCSumSNIHrO+wbT8cJRSbzk3D9yL/0GWlSHQAQWRMCj/4OmcRdt7ChNl10cRUuJ56ZcRH9J4Kndvtgepn1lTtyVs/pY2OV7H0tALFSLhZVC27nOot8kNWFXVYL6sQzI+k/sCrjXBnlwI1mz+Q+6n4hUS2HFtfHh2OfIDIe4m+7+y0TwO6/4oXk6sXLJRhQdF02MAv/urcBK95pxIqzDUUNTvTAvOV1+31l4ewi9GuIzHklP9517pUVZm4lEETcXzORxoda+MxO09gTsaDTX+MU0Id7Xyv2KGXIcsHopR8J+WjiaZOjhXp4ENZ2PfqG3KMKiz3YHE2GGpnTPekcAVWN/L1LJePovVtvnyUcwtren9gLGx4PacFsJ12mbgfRDdfdJv4/FbcCgjRU3HJDJxaPQb2W/fuPvNEX7hNH4dOxiCh2SPwHuFOYqD25yoFRyzwW4HKgv+FmJUFcPzhdozRCvydzVvAbBBexFRuQt8xaSKs+iKpa6HgFox6f5El+IAeXCGfqtwppCtvbYC39px0L2i2NCAsdP/nzjc8UFnwyzZkjsdYxTwvIEtg+LsI02MX0DUwFQA/z547LsR+RAPftr3HlIufVYIoD7tCUoNKWeIl1J7+zBZ6TAiCivKjIewhzvWnbqXH8YP+9bEEMn7WJMBN7uGbJBjMuZouNzDoWdyh/dPpLl7lpGGA3SnHOuJ6ah0oORZTVtwvynNeV2NorBrKU4vSFWV3mCjQf2hg/rw93Uon448iSnZFxuiVc5o9rafGa98TcMNyrd31R4YQR9PACykMo+o4wDiAEU9sWBcJoii4sS3PGr3izWJS7hzKf07nFup0QBp2XJo+V1JhK9XJtCuOl1tUdJtCyn3jBrIj72CT/Uh0RqoIFnzyEHDKBCFZvkUxeBiQafUfiGb3yXZY5+cEH4T4KtoZYUdYyDxJLl2hlQUzSTH9Qcyx7Mq6P3SI2hEbr1YKXZdNTvx/Ay93PSlBqU9t9PzV+x75uUWq8bVfvXdYoAi11v2RddzU//Wwnj01nx6YoFrUUGs/Z0Va7NJuNEsKwQ== 
javax.faces.partial.ajax=true 
javax.faces.partial.execute=searchBtn 
javax.faces.partial.render=assetListForm 
javax.faces.source=searchBtn 
searchBtn=searchBtn 

你知道这种行为的原因是什么?
谢谢。

回答

1

它可能与问题https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-790有关。看看如何解决这个问题,例如,在链接:how to fixe twice needed click inside JSF page?

+0

我使用primefaces。这个问题是为mojarra – 2014-09-13 11:24:37

+0

它不metter。这是所有实现JSF的规范和问题。你可以看看http://stackoverflow.com/questions/10814888/have-to-press-command-button-twice,http://stackoverflow.com/questions/16438847/how-to-fixe-twice-needed-click -inside-jsf-page,其中问题与p:commandButton - primefaces组件。 – 2014-09-13 12:07:08