Author: musachy Date: Mon Dec 1 11:49:00 2008 New Revision: 722198 URL: http://svn.apache.org/viewvc?rev=722198&view=rev Log: WW-2671 Add fieldName attribute to FieldErrorTag
Thanks to David Evans for the patch Added: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/fielderror-6.txt Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/FieldError.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/FieldErrorTag.java struts/struts2/trunk/core/src/site/resources/tags/fielderror.html struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FieldErrorTagTest.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/FieldError.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/FieldError.java?rev=722198&r1=722197&r2=722198&view=diff ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/FieldError.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/FieldError.java Mon Dec 1 11:49:00 2008 @@ -21,16 +21,15 @@ package org.apache.struts2.components; -import java.util.ArrayList; -import java.util.List; +import com.opensymphony.xwork2.util.ValueStack; +import org.apache.struts2.components.Param.UnnamedParametric; +import org.apache.struts2.views.annotations.StrutsTag; +import org.apache.struts2.views.annotations.StrutsTagAttribute; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - -import org.apache.struts2.views.annotations.StrutsTag; -import org.apache.struts2.components.Param.UnnamedParametric; - -import com.opensymphony.xwork2.util.ValueStack; +import java.util.ArrayList; +import java.util.List; /** * <!-- START SNIPPET: javadoc --> @@ -66,6 +65,10 @@ * .... * </s:form> * + * OR + * + * <s:fielderror fieldName="field1" /> + * * <!-- END SNIPPET: example --> * </pre> * @@ -108,5 +111,10 @@ public List<String> getFieldErrorFieldNames() { return errorFieldNames; } + + @StrutsTagAttribute(description="Field name for single field attribute usage", type="String") + public void setFieldName(String fieldName) { + addParameter(fieldName); + } } Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/FieldErrorTag.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/FieldErrorTag.java?rev=722198&r1=722197&r2=722198&view=diff ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/FieldErrorTag.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/FieldErrorTag.java Mon Dec 1 11:49:00 2008 @@ -36,8 +36,22 @@ private static final long serialVersionUID = -182532967507726323L; + protected String fieldName; + + public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { return new FieldError(stack, req, res); } + + protected void populateParams() { + super.populateParams(); + + FieldError fieldError = ((FieldError) component); + fieldError.setFieldName(this.fieldName); + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } } Modified: struts/struts2/trunk/core/src/site/resources/tags/fielderror.html URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/site/resources/tags/fielderror.html?rev=722198&r1=722197&r2=722198&view=diff ============================================================================== --- struts/struts2/trunk/core/src/site/resources/tags/fielderror.html (original) +++ struts/struts2/trunk/core/src/site/resources/tags/fielderror.html Mon Dec 1 11:49:00 2008 @@ -82,6 +82,14 @@ <td align="left" valign="top">Set the html disabled attribute on rendered html element</td> </tr> <tr> + <td align="left" valign="top">fieldName</td> + <td align="left" valign="top">false</td> + <td align="left" valign="top"></td> + <td align="left" valign="top">false</td> + <td align="left" valign="top">String</td> + <td align="left" valign="top">Field name for single field attribute usage</td> + </tr> + <tr> <td align="left" valign="top">id</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FieldErrorTagTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FieldErrorTagTest.java?rev=722198&r1=722197&r2=722198&view=diff ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FieldErrorTagTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FieldErrorTagTest.java Mon Dec 1 11:49:00 2008 @@ -82,6 +82,17 @@ verify(FieldErrorTagTest.class.getResource("fielderror-3.txt")); } + public void testWithFieldName() throws Exception { + FieldErrorTag tag = new FieldErrorTag(); + tag.setFieldName("field1"); + ((InternalAction)action).setHaveFieldErrors(true); + tag.setPageContext(pageContext); + tag.doStartTag(); + tag.doEndTag(); + + verify(FieldErrorTagTest.class.getResource("fielderror-6.txt")); + } + public void testWithParamsWithFieldErrors2() throws Exception { FieldErrorTag tag = new FieldErrorTag(); ((InternalAction)action).setHaveFieldErrors(true); Added: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/fielderror-6.txt URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/fielderror-6.txt?rev=722198&view=auto ============================================================================== --- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/fielderror-6.txt (added) +++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/fielderror-6.txt Mon Dec 1 11:49:00 2008 @@ -0,0 +1,3 @@ +<ul> + <li><span class="errorMessage">field error message number 1</span></li> +</ul> \ No newline at end of file