【发布时间】:2014-07-05 10:19:53
【问题描述】:
我有一个
<h:form prependid="true" enctype="multipart/form-data" >
<h:inputText value="#{mybean.someStringField}" />
<h:inputFile id="myFile" value="#{mybean.somePartField}" />
<h:selectOneMenu value="#{mybean.someField}" >
<f:selectItems value="#{mybean.someSelectItemList}" >
<f:ajax event="change" execute="@form" render="@form" immediate="true" listener="#{mybean.someListenerAjaxBehaviorEvent}" />
</h:selectOneMenu>
</h:form>
当 selectOneMenu 上的值改变时这个表单没有刷新表单
someListenerAjaxBehaviorEvent 方法由如下代码组成
public void someListenerAjaxBehaviorEvent(AjaxBehaviorEvent ev) throws AbortProcessingException {
try
{
String code = (String)((UIOutput)ev.getSource()).getValue();
...
// Some SQL sentences for update data list
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
当表单不是“multipart/form-data”类型时,此方法可以正常工作,但我需要在此表单上附加一些文件。 任何人有任何想法可以帮助我解决问题,我非常感谢他们的贡献
【问题讨论】:
-
多部分表单似乎是出了名的错误。当您触发该事件时会发生什么?是否生成了请求?你的听众被叫了吗?
-
什么都没有发生,监听器没有触发,我添加了一条消息来控制台监听器“System.out.println(“message”)”,但是没有显示
-
我还没有解决这个问题,谁能帮帮我