我正在编写一个JSF页面,但是,一个命令按钮在页面加载时多次调用它的动作,但是没有人点击它...这搞乱了我的整个进度......
HTML:
<h:panelGrid columns="2" cellpadding="10">
<h:form>
<table>
<tr>
<td>姓名:</td>
<td><p:inplace editor="true"><p:inputText value="#{user.name}"/></p:inplace></td>
</tr>
<tr>
<td>联系方式:</td>
<td><p:inplace editor="true"><p:inputText value="#{user.phone}"/></p:inplace></td>
</tr>
<tr>
<td>性别:</td>
<td><h:outputText value="#{user.gender}"/></td>
</tr>
<tr>
<td>身份证号:</td>
<td><p:inplace editor="true"><p:inputText value="#{user.pid}"/></p:inplace></td>
</tr>
<tr>
<td style="position:absolute; right:30px;"><p:commandButton value="删除" action="#{info.removeUser()}"/></td>
</tr>
</table>
</h:form>
的java:
public void removeUser(){
System.out.println("Current tab:"+index +" Removed............");
users.remove(Integer.parseInt(index));
}
这里“index”是accordionPanel中的当前选项卡,它是一个String ...
这里有时间问问题,也许我省略了一些信息...
答案 0 :(得分:1)
如果您忘记在视图中声明p
XML namespage,就会发生这种情况。
xmlns:p="http://primefaces.org/ui"
如果您忘记声明p
XML命名空间,则所有p:xxx
标记都将被视为纯文本。属性中的所有EL表达式都会立即执行,就像它们嵌入纯文本一样。这还包括#{info.removeUser()}
表达式。 “很多次”很可能与EL表达式在视图中出现的数量相同。