我一直在努力让我的commandButtons执行一个动作(但奇怪的是,我没有问题从bean中提取数据以包含在我的页面中)。甚至在其他地方发布了我的代码并由其他人审核过。到目前为止,没有运气。所以,我想也许是一个不同的机智。任何人都可以向我指出一个项目的非常简单/基本的示例代码,该代码具有能够成功调用操作的commandButton吗?
答案 0 :(得分:6)
初学者的一个常见原因是<h:form>
被遗忘了。根据HTML规范,任何旨在向服务器端提交内容的提交按钮都应放在HTML <form>
元素中。
这是一个简单的Hello World如何在JSF中执行此操作:
JSF页面
<!DOCTYPE html>
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Hello World</title>
</h:head>
<h:body>
<h:form>
Enter your name
<h:inputText value="#{bean.input}" />
<h:commandButton value="submit" action="#{bean.submit}" />
</h:form>
<h:outputText value="#{bean.output}" />
</h:body>
</html>
豆:
package mypackage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class Bean {
private String input;
private String output;
public void submit() {
output = String.format("Hello %s!", input);
}
public String getInput() {
return input;
}
public String getOutput() {
return output;
}
public void setInput(String input) {
this.input = input;
}
}
这就是全部:)
有关此问题的其他可能原因,请查看下面列表中的第一个链接。