PrimeFaces 4.0 FileUpload работает с Mojarra 2.2, но не с MyFaces 2.2
У меня интересная проблема с последним элементом FileUpload в PrimeFaces 4.0. Я пытаюсь бежать:
PrimeFaces 4.0 финалApache MyFaces 2.2.0-betaTomcat 7.0.27У меня сейчас очень простая настройка,
Страница XHTML:
С этим бобом поддержки:
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.FileUploadEvent;
@ManagedBean
@RequestScoped
public class FileUploadController
{
public void handleFileUpload(FileUploadEvent event)
{
FacesMessage msg = new FacesMessage("Succesful", event.getFile()
.getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
}
При выборе файла и его загрузке ничего не происходит.
Загрузка успешно завершена со следующим ответом:
но сообщение не отображается, и если я установлю точку останова, оно не будет получено.
Если, однако, я вытащу MyFaces 2.2.0-beta и поставлю Mojarra 2.2.0, все будет работать как положено.
Я бы предпочел продолжать использовать MyFaces, так как это то, что яМы использовали его в прошлом, поэтому, если у кого-то есть какие-либо идеи относительно патча, чтобы заставить его работать, это было бы очень признательно.
Спасибо
web.xml
UploadTest
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
Faces Servlet
javax.faces.webapp.FacesServlet
1
Faces Servlet
*.xhtml
javax.servlet.jsp.jstl.fmt.localizationContext
resources.application
State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2
javax.faces.STATE_SAVING_METHOD
client
This parameter tells MyFaces if javascript code should be allowed in
the rendered HTML output.
If javascript is allowed, command_link anchors will have javascript code
that submits the corresponding form.
If javascript is not allowed, the state saving info and nested parameters
will be added as url parameters.
Default is 'true'
org.apache.myfaces.ALLOW_JAVASCRIPT
true
If true, rendered HTML code will be formatted, so that it is 'human-readable'
i.e. additional line separators and whitespace will be written, that do not
influence the HTML code.
Default is 'true'
org.apache.myfaces.PRETTY_HTML
true
org.apache.myfaces.DETECT_JAVASCRIPT
false
If true, a javascript function will be rendered that is able to restore the
former vertical scroll on every request. Convenient feature if you have pages
with long lists and you do not want the browser page to always jump to the top
if you trigger a link or button action that stays on the same page.
Default is 'false'
org.apache.myfaces.AUTO_SCROLL
true
org.apache.myfaces.webapp.StartupServletContextListener
ОбновитьПохоже, что Myfaces 2.2.0-beta имеет проблемы с использованием Part API, присутствующего в сервлете 3.x.
удайкиран пулипати имеет часть решения с использованием вебweb.xml
фильтры, которые требуется PrimeFaces 3.x и загрузка файла commons io jars, однако, нам также необходимо добавить следующий контекст-параметр вweb.xml
или фильтры игнорируются:
primefaces.UPLOADER
commons
Это заставит PrimeFaces использовать библиотеку commons, которая решает проблему
При этом, я все еще хотел бы знать, почему MyFaces может 'Кажется, я не использую API части сервлета, если у кого-то есть идеи. Я подозреваю, что это может быть связано с моей версией Tomcat, поскольку я нахожусь только на 7.0.27, но я сомневаюсь в этом.