You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2016/08/11 22:56:44 UTC
svn commit: r1756062 - in
/myfaces/core/trunk/api/src/main/java/javax/faces/component/html:
_ClassUtils.java _HtmlInputFile.java _MessageUtils.java
_ParametrizableFacesMessage.java
Author: lu4242
Date: Thu Aug 11 22:56:44 2016
New Revision: 1756062
URL: http://svn.apache.org/viewvc?rev=1756062&view=rev
Log:
MYFACES-4060 Required attribute of h:inputFile tag is not working
Added:
myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_ClassUtils.java
- copied, changed from r1751953, myfaces/core/trunk/api/src/main/java/javax/faces/component/_ClassUtils.java
myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_MessageUtils.java
- copied, changed from r1751953, myfaces/core/trunk/api/src/main/java/javax/faces/component/_MessageUtils.java
myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_ParametrizableFacesMessage.java
- copied, changed from r1751953, myfaces/core/trunk/api/src/main/java/javax/faces/component/_ParametrizableFacesMessage.java
Modified:
myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_HtmlInputFile.java
Copied: myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_ClassUtils.java (from r1751953, myfaces/core/trunk/api/src/main/java/javax/faces/component/_ClassUtils.java)
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_ClassUtils.java?p2=myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_ClassUtils.java&p1=myfaces/core/trunk/api/src/main/java/javax/faces/component/_ClassUtils.java&r1=1751953&r2=1756062&rev=1756062&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/component/_ClassUtils.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_ClassUtils.java Thu Aug 11 22:56:44 2016
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.faces.component;
+package javax.faces.component.html;
import java.io.IOException;
import java.io.InputStream;
Modified: myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_HtmlInputFile.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_HtmlInputFile.java?rev=1756062&r1=1756061&r2=1756062&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_HtmlInputFile.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_HtmlInputFile.java Thu Aug 11 22:56:44 2016
@@ -19,6 +19,7 @@
package javax.faces.component.html;
import javax.faces.component.UIInput;
+import javax.faces.context.FacesContext;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
@@ -74,4 +75,82 @@ abstract class _HtmlInputFile extends UI
@JSFProperty
public abstract String getAutocomplete();
+ protected void validateValue(FacesContext context, Object convertedValue)
+ {
+ if (!isValid())
+ {
+ return;
+ }
+
+ // If our value is empty, check the required property
+ boolean isEmpty = isEmptyValue(convertedValue);
+
+ if (isRequired() && isEmpty)
+ {
+ if (getRequiredMessage() != null)
+ {
+ String requiredMessage = getRequiredMessage();
+ context.addMessage(this.getClientId(context), new javax.faces.application.FacesMessage(
+ javax.faces.application.FacesMessage.SEVERITY_ERROR,
+ requiredMessage, requiredMessage));
+ }
+ else
+ {
+ _MessageUtils.addErrorMessage(context, this, REQUIRED_MESSAGE_ID,
+ new Object[] { _MessageUtils.getLabel(context, this) });
+ }
+ setValid(false);
+ return;
+ }
+
+ if (!isEmpty)
+ {
+ super.validateValue(context, convertedValue);
+ }
+ }
+
+ private static boolean isEmptyValue(Object value)
+ {
+ if (value == null)
+ {
+ return true;
+ }
+ else if (value instanceof String)
+ {
+ if ( ((String)value).trim().length() <= 0 )
+ {
+ return true;
+ }
+ }
+ else if (value instanceof java.util.Collection)
+ {
+ if ( ((java.util.Collection)value).isEmpty())
+ {
+ return true;
+ }
+ }
+ else if (value.getClass().isArray())
+ {
+ if (java.lang.reflect.Array.getLength(value) <= 0)
+ {
+ return true;
+ }
+ }
+ else if (value instanceof java.util.Map)
+ {
+ if ( ((java.util.Map)value).isEmpty())
+ {
+ return true;
+ }
+ }
+ else if (value instanceof javax.servlet.http.Part)
+ {
+ if (((javax.servlet.http.Part)value).getSize() <= 0)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
}
Copied: myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_MessageUtils.java (from r1751953, myfaces/core/trunk/api/src/main/java/javax/faces/component/_MessageUtils.java)
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_MessageUtils.java?p2=myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_MessageUtils.java&p1=myfaces/core/trunk/api/src/main/java/javax/faces/component/_MessageUtils.java&r1=1751953&r2=1756062&rev=1756062&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/component/_MessageUtils.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_MessageUtils.java Thu Aug 11 22:56:44 2016
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.faces.component;
+package javax.faces.component.html;
import javax.el.ValueExpression;
import javax.faces.application.FacesMessage;
@@ -25,6 +25,7 @@ import javax.faces.context.FacesContext;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
+import javax.faces.component.UIComponent;
class _MessageUtils
{
Copied: myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_ParametrizableFacesMessage.java (from r1751953, myfaces/core/trunk/api/src/main/java/javax/faces/component/_ParametrizableFacesMessage.java)
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_ParametrizableFacesMessage.java?p2=myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_ParametrizableFacesMessage.java&p1=myfaces/core/trunk/api/src/main/java/javax/faces/component/_ParametrizableFacesMessage.java&r1=1751953&r2=1756062&rev=1756062&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/component/_ParametrizableFacesMessage.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/component/html/_ParametrizableFacesMessage.java Thu Aug 11 22:56:44 2016
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.faces.component;
+package javax.faces.component.html;
import java.text.MessageFormat;
import java.util.Locale;