JSF / EL偶尔无法解决操作方法

时间:2014-07-18 23:02:08

标签: jsf el

环境:

  • JSF 2.1.11
  • el-api 2.2
  • Eclipse Kepler
  • Tomcat 7
  • IE-11

我有一个工作的xhtml和bean,它包含几个动作方法并且工作正常。

我添加了另一个commandButton:

<h:commandButton id="idBtnSave" value="Save" 
action="#{imageMetadataEditProvider.saveLabelWithBox}"></h:commandButton> 

......和行动方法:

public void saveLabelWithBox() {
    saveBoundingBox();
    saveImage();
}

...然后由于一些莫名其妙的原因,EL无法在bean上找到方法saveLabelWithBox

我做了几轮重命名方法,重建,取消部署和清理Tomcat环境,重新部署。 几乎总是失败了。

但是,似乎工作的只是将saveLabelWithBox(){}块移动到bean中的其他位置。突然,它再次起作用,所以我轻松地将方法重命名为更有意义的方法,然后再次失败...... EL无法找到方法。所以我再次重命名并移动它,重建,重新部署,现在再次运行。

我很好奇其他人是否有过如此古怪的行为以及您认为可能导致这种情况的原因,除了典型的腐败Eclipse工作区的嫌疑人,还是在微波光束路径上。

1 个答案:

答案 0 :(得分:0)

我终于解决了这个古怪的问题,这个问题似乎与环境中的腐败有关。解决方法似乎是创建一个具有不同名称的新bean,并从以前不可靠的bean中导入所有方法。我也做了通常的Eclipse -clean初创公司,虽然这似乎没有效果。我也删除了Eclipse .metadata并重新启动,虽然这似乎也没有效果。

奇怪的是,在构建一个新的替换bean后,它不会通过注释加载: @ManagedBean @ViewScoped

...所以我不得不在faces-config中定义替换bean,然后它会在页面请求时加载。我认为环境中仍然存在一些问题。但是现在所有的方法都得到了解决,而且它已经好几天了。

您的里程可能会有所不同。