1

我正在写一个 JSF 页面,但是,一个命令按钮在页面加载时多次调用它的动作,但没有人点击它......这搞砸了我的整个进度......

HTML:

<h:panelGrid columns="2" cellpadding="10">  
<h:form>
    <table>
        <tr>
            <td>姓名:&lt;/td>
            <td><p:inplace editor="true"><p:inputText value="#{user.name}"/></p:inplace></td>
        </tr>
        <tr>
            <td>联系方式:&lt;/td>
            <td><p:inplace editor="true"><p:inputText value="#{user.phone}"/></p:inplace></td>
        </tr>
        <tr>
            <td>性别:&lt;/td>
            <td><h:outputText value="#{user.gender}"/></td>
        </tr>
        <tr>
            <td>身份证号:&lt;/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>

爪哇:

public void removeUser(){
    System.out.println("Current tab:"+index +" Removed............");
    users.remove(Integer.parseInt(index));
}

这里的“索引”是手风琴面板中的当前选项卡,它是一个字符串......

第一次在这里提问,也许我遗漏了一些信息......

4

1 回答 1

1

如果您忘记p在视图中声明 XML 名称页,就会发生这种情况。

xmlns:p="http://primefaces.org/ui"

如果您忘记声明pXML 命名空间,则所有p:xxx标记都将被视为纯文本。属性中的所有 EL 表达式都会立即执行,就好像它们嵌入在纯文本中一样。这也包括#{info.removeUser()}表达式。“很多次”很可能与视图中出现的 EL 表达式相同。

于 2012-09-10T18:33:47.060 回答