2012-11-07 29 views
0

我有一個非常奇怪的問題,其中一個bean沒有解析但只能提交,它在視圖上工作正常,但在提交時,它錯誤地說該標識符是空的JSF2表單提交「目標無法訪問,標識符'myModel'解析爲空僅在提交時

我的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> 

Model類

@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,
  • 去除字段的本體顯示(巴一個 - 名稱),
  • 傳入requestParam再次(但我意識到,我什至沒有在第一時間拿起它工作正常。

我發現很多不同的人使用同一最終錯誤,但不一樣的情況下, 。

都沒有快樂。任何人有什麼想法可能是什麼問題?

我使用的Arquillian在JBoss 7.1.1.Final

讚賞任何幫助測試。事實證明

+0

[java的EE-6-目標不可達-標識符爲helloBean分辨到零(的可能的複製http://stackoverflow.com/questions/9809511/java-ee-6 -target不可達-標識符爲helloBean分辨到零) – Ravi

回答

2

- 罪魁禍首是蝕。在昨天浪費了整整一個下午之後,我試着在今天早晨通過maven運行測試,並且運行良好。

我曾嘗試在eclipse中清理項目,但昨天似乎沒有任何效果。今天再做一次似乎清楚了這個問題。

事實上,這個問題再次出現,我再次通過清理項目來解決問題。

: -/

0

可能是嘗試@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"; 
} 
} 
相關問題