Jsf 2 JSF2表格提交";无法访问目标,标识符';myModel';仅在提交时解析为空
我有一个非常奇怪的问题,一个bean没有解决,只是在提交时才解决。它在视图上工作正常,但在提交时,它会错误地指出标识符为null 我的JSFJsf 2 JSF2表格提交";无法访问目标,标识符';myModel';仅在提交时解析为空,jsf-2,jboss7.x,cdi,Jsf 2,Jboss7.x,Cdi,我有一个非常奇怪的问题,一个bean没有解决,只是在提交时才解决。它在视图上工作正常,但在提交时,它会错误地指出标识符为null 我的JSF <h:form id="edit" styleClass="form"> <rich:panel> <f:facet name="header"> <h:outputText value="Edit Data" />
<h:form id="edit" styleClass="form">
<rich:panel>
<f:facet name="header">
<h:outputText value="Edit Data" />
</f:facet>
<rich:graphValidator value="#{myModel}" id="gv">
<rich:messages for="gv" />
<rich:messages id="goal-messages" globalOnly="true" />
<!-- form fields that reference #{myModel.fields} -->
<h:commandButton id="save" value="Save"
action="#{myModel.save}" />
</rich:graphValidator>
</rich:panel>
</h:form>
我知道我应该将save操作移动到一个控制器中,一旦它工作,我就会将其移动到控制器中。我有另一个无问题工作的实例(在另一个相关模块中)。事实上,我从一开始就复制了代码,并根据需要进行了修改
这个模块的主要区别在于我对它的命名不同于类
视图加载正常,没有任何问题,但在提交时,我得到以下信息:
根异常是:
Caused by: javax.el.PropertyNotFoundException: /edit.xhtml @26,71 value="#{myModel.name}": Target Unreachable, identifier 'myModel' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:133) [jsf-impl-2.1.7-jbossorg-2.jar:]
at org.richfaces.el.ValueExpressionAnalayserImpl$SetValueCommand.resolve(ValueExpressionAnalayserImpl.java:42) [richfaces-components-ui-4.2.2.Final.jar:4.2.2.Final]
at org.richfaces.el.ValueExpressionAnalayserImpl.resolveValue(ValueExpressionAnalayserImpl.java:64) [richfaces-components-ui-4.2.2.Final.jar:4.2.2.Final]
at org.richfaces.el.ValueExpressionAnalayserImpl.updateValueAndGetPropertyDescriptor(ValueExpressionAnalayserImpl.java:90) [richfaces-components-ui-4.2.2.Final.jar:4.2.2.Final]
at org.richfaces.validator.BeanValidatorServiceImpl.validateExpression(BeanValidatorServiceImpl.java:157) [richfaces-components-ui-4.2.2.Final.jar:4.2.2.Final]
... 41 more
记住它在查看页面时起作用,我真的不知道为什么它在提交时不起作用
我尝试过各种方法,包括:
- 将范围更改为@ViewScoped
- 删除显示的大部分字段(第一栏-名称)
- 再次传入requestParam(但我意识到,我一开始甚至没有被接上,它工作得很好)
感谢您的帮助。可以尝试@ManagedBean?:
@ManagedBean(name="myModel")
@RequestScoped
public class MyModelImpl implements Model {
@Inject
@RequestParam("objectId")
private Long objectId;
// Getters & Setters for the various fields
//should save return some outcome?
public String save() {
return "index.xhtml";
}
public String getName() {
retrun "Your error shows that somewhere in your xhtml this property is called";
}
}
事实证明,罪魁祸首是eclipse。昨天浪费了整整一个下午之后,我今天早上尝试通过maven运行测试,结果很好 我曾尝试在eclipse中清理项目,但昨天似乎没有任何效果。今天再次这样做似乎可以解决问题 事实上,这个问题再次出现,我通过清理项目再次修复了这个问题
:-/检查faces-config.xml是否位于web应用程序根目录的META-INF目录中 可能存在的副本
@ManagedBean(name="myModel")
@RequestScoped
public class MyModelImpl implements Model {
@Inject
@RequestParam("objectId")
private Long objectId;
// Getters & Setters for the various fields
//should save return some outcome?
public String save() {
return "index.xhtml";
}
public String getName() {
retrun "Your error shows that somewhere in your xhtml this property is called";
}
}