selectOneMenu中的java警报错误

时间:2013-12-13 17:15:54

标签: jsf jsf-2

我收到错误

  
    

serverError:class java.lang.ClassCastException java.lang.Integer无法强制转换为java.lang.String

  

当我从<h:selectOneMenu>组件中选择某些内容时会发生这种情况。

出现此错误的可能原因是什么?我没有编写任何JavaScript代码来生成警报。

<h:selectOneMenu>组件根本不处理Integer。

有时我也会收到ArrayIndexOutOfBoundException 1作为提醒。

<h:selectOneMenu id="vehiclenames" value="#{bean.selectedVehicle}">
    <f:selectItem itemLabel="select one" itemValue=""/>
    <f:selectItems   value="#{vehicles}" />
    <f:ajax event="change" listener="#{bean.catchValue}" render= "panel" />
</h:selectOneMenu>

1 个答案:

答案 0 :(得分:3)

当您使用Mojarra并将javax.faces.PROJECT_STAGE上下文参数设置为Development时,会在ajax请求期间抛出异常时显示此警报。此警报旨在通知Web开发人员某些事情严重失败。

您应该在服务器日志中看到异常和完整堆栈跟踪。通常,它是由您自己的代码中的错误引起的。堆栈跟踪应该提供足够的线索。

对于“怪异”的异常处理,您可能需要考虑OmniFaces FullAjaxExceptionHandler。这将让JSF ajax异常使用标准的web.xml错误页面机制。另请参阅What is the correct way to deal with JSF 2.0 exceptions for AJAXified components?