我正在jsf环境中工作。使用commandButton操作从xhtml页面中的控制器调用方法时面临一个问题。以下是该方案的
1)如果我使用过
<h:commandButton value="#{some.value}" action="#{myController.myMethod()}"></h:commandButton>
在ui:repeat
中的代码之上,则不会调用myController bean中的myMethod。但是在第二种情况下,
2)如果我使用相同的代码,
<h:commandButton value="#{some.value}" action="#{myController.myMethod()}"></h:commandButton>
上面没有ui:repeat
的代码是从Bean正确调用myMethod。
以下是我的代码更改,
xHtml代码(无效)
<tbody>
<h:form>
<ui:repeat var="some" value="#{myController.someList}" varStatus="i">
<tr>
<td>
<div class="btn-group">
<h:commandButton value="#{some.value}" action="#{myController.myMethod()}"></h:commandButton>
<h:commandButton value="#{some.value}" action="#{myController.myMethod()}"></h:commandButton>
</div>
</td>
</tr>
</ui:repeat>
</h:form>
</tbody>
xHtml代码(正在运行)
<tbody>
<h:form>
<tr>
<td>
<div class="btn-group">
<h:commandButton value="value" action="#{myController.myMethod()}"></h:commandButton>
<h:commandButton value="value" action="#{myController.myMethod()}"></h:commandButton>
</div>
</td>
</tr>
</h:form>
</tbody>
我的控制器,
@ManagedBean(name = "myController")
@RequestScoped
public class MyController {
public String myMethod() {
String str = "myMethod executed successfully.";
System.out.println(str);
return str;
}
}
我希望myMethod也应从ui:repeat
调用。我该如何解决这个问题,为此苦苦挣扎。