我在托管bean中有一个非常奇怪的行为,它没有保留从jsf发送的值,当它处理POST时,属性都是null。
我有一个简单的表单,有2个字段和一个按钮,接收两个字段的值,按钮执行POST方法来处理从JSF收到的数据。在运行调试时,我可以看到按下按钮后,然后使用发送到bean的值执行setter方法(好),但是当它执行mothod时,突然所有属性都为null。
我必须包括,所有这一切都工作正常,当我将所有托管bean(backbeans)移动到一个单独的JAR文件时,它开始于此行为。我知道,如果我再次将文件移动到webapp,那么它将会起作用,但我正在寻找一种不在同一项目中累积太多文件的方法,这对于编译和部署来说需要很长时间。
这是backbean和JSF的代码:
@Named
@RequestScoped
public class RegisterController implements Serializable {
private String accountType;
public String getAccountTypes() {
return accountType;
}
public void setAccountTypes(String accountType) {
this.accountType = accountType; // Here it stores the value ********
}
private String businessType;
public String getBusinessType() {
return businessType;
}
public void setBusinessType(String businessType) {
this.businessType = businessType; // Here it stores the other value *******
}
// Method called with the button
public String prepareCreate() {
if ("PERSONAL".equals(getAccountTypes())) // Here is null!! *************
{
return "PersonalSignup";
}
else
if (businessType == null) // Here is also null!! ************
{
JsfUtil.addErrorMessage(
new Exception(""), ResourceBundle.getBundle(CommonUtil.bundleStr).getString("cc.signup.accounttype.invalid.businesstype"));
}
...
非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
在这里找到答案:How does JSF find beans annotated with @ManagedBean?。当然,如果您需要webapp查看托管bean的jar文件,只需在jar文件的META-INF文件夹中包含faces-config.xml文件。