Bean が解決されず、送信時にのみ解決されるという非常に奇妙な問題があります。ビューでは正常に動作しますが、送信時に識別子がnullであるとエラーになります
私のJSF
<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>
モデルクラス
@Named("myModel")
@RequestScoped
public class MyModelImpl implements Model {
@Inject
@RequestParam("objectId")
private Long objectId;
// Getters & Setters for the various fields
public void save() {
// does nothing just now
}
}
保存操作をコントローラーに移動する必要があることはわかっています。コントローラーは、機能するようになりました。これが問題なく動作する別のインスタンスがあります(別の関連モジュールで)。実際、最初にコードをコピーし、必要に応じて変更しました。
このモジュールの主な違いは、クラスとは異なる名前を付けていることです。
ビューは問題なく読み込まれますが、送信時に次のようになります。
根本的な例外は次のとおりです。
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 に変更し、
- 表示されるフィールドの大部分を削除します (バー 1 - 名前)。
- もう一度 requestParam を渡します (しかし、そもそも私が拾われていないことに気付きました。それはうまくいきます。
同じ最終的なエラーを抱えているが、同じ状況ではない多くの人々を見つけました。
すべてに喜びはありません。何が問題なのか考えている人はいますか?
JBoss 7.1.1.FinalでArquillianを使用してテストしています
どんな助けでも感謝します。