我有这样的一个facelet代码:JSF 2表单提交
<h:inputText id="searchtext" value="#{SearchBean.input}" />
<h:commandButton value="#{msg.BUTTON_SEARCH_LABEL}" title="#{msg.BUTTON_SEARCH_LABEL}"
action="#{SearchBean.Submit}" />
SearchBean有以下:
@ManagedBean(name = "SearchBean")
@RequestScoped
public class SearchBean implements Serializable
{
private String input = null;
private Boolean submitted = false;
public String getInput() {
return input;
}
public boolean getSubmitted() {
return submitted;
}
public void setInput(String input) {
this.input = input;
}
public void setSubmitted(Boolean submitted) {
this.submitted = submitted;
}
public String Submit() {
System.out.println(">>> SUBMITTED <<<");
submitted = true;
return "";
}
}
的SearchBean的方法在bookService的豆叫如下:
@Stateless
public class BookService()
{
@Inject
private SearchBean searchBean;
@PostConstruct
public void init()
{
Boolean isSearch = isSubmitted();
if (isSearch) {
// some codes
} else {
// other codes
}
}
public Boolean isSubmitted() {
System.out.println("STATUS: " + searchBean.getSubmitted());
return searchBean.getSubmitted();
}
}
当我s ubmit表单,通过SearchBean的状态返回getSubmitted()方法总是返回false。我希望这会在表单提交时返回true。我不知道该怎么办。
是FlashScoped在JSF 2中提交表单的唯一可用选项?任何专家关心评论。
我试图在项目中包含javax.faces.bean.ConversationScoped,但Eclipse查找合适,因为它无法解析类。我在哪里可以找到ConversationScoped类所在的jar。谢谢 – ChuongPham 2011-04-04 11:59:22
你最后一次改变了你的答案。无论如何,根据我对@Matt的评论,对于getSubmitted()方法,使用@ViewScoped仍然返回false。 – ChuongPham 2011-04-04 12:21:20
@ user463053:我确实。在我的第一个答案中做出了错误的假设。你确定表单被提交? – Fortega 2011-04-04 12:28:37