Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.8DR#1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:All
-
Affects:Documentation (User Guide, Ref. Guide, etc.)
Description
Because of state saving, and the component tree not persisting, we have to come up with a strategy to make the inputFile component function. And hopefully address some of its current short-comings.
Right now the UploadServer (servlet) assumes it can just lookup the appropriate View, and get the UIViewRoot (component tree) from there, and maintain state about the uploading within the InputFile component. Since we won't have a component tree sitting around anymore, we'll need to maintain the uploading state elsewhere, and then have a mechanism of initiating a lifecycle, in which the InputFile component will exist, and any beans will be accessible, and then do progress notifications.
Right now the UploadServer (servlet) assumes it can just lookup the appropriate View, and get the UIViewRoot (component tree) from there, and maintain state about the uploading within the InputFile component. Since we won't have a component tree sitting around anymore, we'll need to maintain the uploading state elsewhere, and then have a mechanism of initiating a lifecycle, in which the InputFile component will exist, and any beans will be accessible, and then do progress notifications.
Issue Links
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Now, all accesses to the inputFile component, to update its state, fire its listeners, are done within JSF Lifecycles, to function with a non-persistent component tree when using state saving, as well as to better work in Seam/Spring environments.
For documentation, we should note the addition of the com.icesoft.faces.uniqueFolder context param, with a default value of false, which mirros the attribute on the inputFile component. The context-param sets a global default value, which the inputFile attribute can override.
There's an outstanding bug,
ICE-3842, which is being worked on right now. So if a regression is found, that should be looked at first.Subversion 17982
icefaces\component-metadata\src\main\resources\conf\ice_cust_properties\cust-inputFile-props.xml
icefaces\component\src\com\icesoft\faces\component\inputfile\InputFile.java
icefaces\component\src\com\icesoft\faces\component\inputfile\InputFileRenderer.java
icefaces\component\src\com\icesoft\faces\component\inputfile\InputFileSetFileEvent.java
icefaces\component\src\com\icesoft\faces\component\inputfile\FileInfo.java
icefaces\component\src\com\icesoft\faces\resources\messages.properties
icefaces\component\src\com\icesoft\faces\resources\messages_es.properties
icefaces\component\src\com\icesoft\faces\resources\messages_fr.properties
icefaces\core\conf\just-ice\faces-config.xml
icefaces\core\conf\META-INF\faces-config.xml
icefaces\core\src\com\icesoft\faces\component\inputfile\FileInfo.java
icefaces\core\src\com\icesoft\faces\component\FileUploadComponent.java
icefaces\core\src\com\icesoft\faces\component\inputfile\FileUploadInvalidNamePatternException.java
icefaces\core\src\com\icesoft\faces\component\inputfile\FileUploadPhaseListener.java
icefaces\core\src\com\icesoft\faces\component\inputfile\FileUploadUnspecifiedNameException.java
icefaces\core\src\com\icesoft\faces\component\inputfile\UploadConfig.java
icefaces\core\src\com\icesoft\faces\component\inputfile\UploadStateHolder.java
icefaces\core\src\com\icesoft\faces\webapp\http\core\UploadServer.java
icefaces\core\src\com\icesoft\faces\webapp\xmlhttp\PersistentFacesState.java
icefaces\core\src\com\icesoft\faces\webapp\http\common\standard\StringContentHandler.java
icefaces\samples\component-showcase\common-src\org\icefaces\application\showcase\view\bean\examples\component\inputFile\InputFileController.java
icefaces\samples\component-showcase\common-src\org\icefaces\application\showcase\view\bean\examples\component\inputFile\InputFileData.java
icefaces\samples\component-showcase\common-web\WEB-INF\includes\examples\custom\inputFile.jspx