JSF 命令未调用按钮操作
2022-09-02 12:52:38
我遇到了一个问题,JSF CommandButton 操作未被调用。我有一个托管的 Bean 角色控制器,如
@ManagedBean(name = "roleController")
@RequestScoped
public class RoleController {
public Role getSelectedRole() {
return selectedRole;
}
public void updateSelectedRole() {
System.out.println(selectedRole.getRole());
}
在我的.jsf文件中,我正在尝试编辑h:commandButton上的调用updateSelectedRole操作,但它似乎不起作用。我尝试将方法名称更改为不正确的方法名称,并且没有抛出异常 - 但是当我对其他形式执行相同的操作时,会引发异常 - 因此很可能甚至没有调用该操作。
<h:panelGroup rendered="${param.action == 'edit'}">
<h:form>
<ol>
<li>
<label for="ID">
<h:outputText value="#{msg.roleEditID}" />
</label>
<h:inputText readonly="true"
value="#{roleController.selectedRole.id}" />
</li>
<li>
<label for="Role">
<h:outputText value="#{msg.roleEditRole}" />
</label>
<h:inputText value="#{roleController.selectedRole.role}" />
</li>
<li>
<h:commandButton value="#{msg.buttonUpdate}"
action="#{roleController.updateSelectedRole()}"/>
</li>
</ol>
</h:form>
</h:panelGroup>
我发现它可能是由嵌套形式引起的,但在此示例中并非如此。这个问题的根源是否有可能是我的导航规则?
<navigation-rule>
<from-view-id>/admin/roles.xhtml</from-view-id>
<navigation-case>
<to-view-id>/admin/roles.xhtml</to-view-id>
<from-outcome>true</from-outcome>
<redirect>
<view-param>
<name>action</name>
<value>edit</value>
</view-param>
</redirect>
</navigation-case>
</navigation-rule>