我试图通过
访问我的xhtml文件中的Bean<h:commandButton value="Add Recipe" action="#{recipeBean.newres}"/>
,它运行良好(managedbean类名也是"RecipeBean")。因为我决定用德语做我的项目,我想把名字改成"RezeptBean",这最终导致java类重构为"RezeptBean",我在xhtml中调整为
<h:commandButton value="Add Recipe" action="#{rezeptBean.newres}"/>
我真的很困惑,因为现在单击按钮以"目标不可达,标识符解析为null"结束,而使用"recipeBean"。"新闻"仍在工作。我认为可能存在一个将被管理bean名称映射到它们的html-pendant的映射。有人能给我点线索吗?
顺便说一下,这是Managedbean-Class:
@SessionScoped
@ManagedBean
public class RezeptBean {
private Recipe recipe;
public RezeptBean(){
recipe = new Recipe();
}
public String review(){
return("recipe");
}
...
既然我决定用德语做我的项目,我想将名称更改为"RezeptBean",最终重构了java类到"RezeptBean"和我在xhtml调整到
为什么要更改Bean名称并再次重构代码?
可以在@ManagedBean
[link]注释上使用name
属性。
这样,您可以保持BeanName为实体,并在需要时随时更改Exposed ManagedBean名称。
的例子:
@SessionScoped
@ManagedBean(name="rezeptBean")
public class RecipeBean{
....
....
}