You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ri...@apache.org on 2005/05/23 10:45:13 UTC
svn commit: r177943 [2/2] - in /incubator/beehive/trunk: ./ netui/ant/
samples/netui-jsf/WEB-INF/src/bundles/ samples/netui-jsf/WEB-INF/src/jsf/
samples/netui-jsf/WEB-INF/src/org/ samples/netui-jsf/WEB-INF/src/org/apache/
samples/netui-jsf/WEB-INF/src/org/apache/beehive/
samples/netui-jsf/WEB-INF/src/org/apache/beehive/samples/
samples/netui-jsf/WEB-INF/src/org/apache/beehive/samples/netui/
samples/netui-jsf/WEB-INF/src/org/apache/beehive/samples/netui/jsf/
samples/netui-jsf/WEB-INF/src/org/apache/beehive/samples/netui/jsf/data/
samples/netui-jsf/WEB-INF/src/org/apache/beehive/samples/netui/jsf/physician/
samples/netui-jsf/WEB-INF/src/org/apache/beehive/samples/netui/jsf/physiciansFlow/
samples/netui-jsf/WEB-INF/src/org/apache/beehive/samples/netui/resources/
samples/netui-jsf/WEB-INF/src/org/apache/beehive/samples/netui/resources/jsf/
samples/netui-jsf/WEB-INF/src/org/apache/beehive/samples/netui/resources/jsf/physiciansFlow/
samples/netui-jsf/jsf/ samples/netui-jsf/jsf/physiciansFlow/
samples/netui-jsf/resources/template/ samples/netui-samples/
samples/netui-samples/WEB-INF/src/org/apache/beehive/samples/netui/loginexample/
samples/netui-samples/WEB-INF/src/org/apache/beehive/samples/netui/loginexample/login/
samples/netui-samples/WEB-INF/src/org/apache/beehive/samples/netui/resources/validation/
samples/netui-samples/loginexample/
samples/netui-samples/loginexample/loginflow/
samples/netui-samples/loginexample/protectedflow/
samples/netui-samples/loginexample/start/
samples/netui-samples/ui/datagrid/ samples/netui-samples/validation/
Modified: incubator/beehive/trunk/samples/netui-samples/validation/Controller.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/validation/Controller.java?rev=177943&r1=177942&r2=177943&view=diff
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/validation/Controller.java (original)
+++ incubator/beehive/trunk/samples/netui-samples/validation/Controller.java Mon May 23 01:45:09 2005
@@ -23,47 +23,100 @@
import org.apache.beehive.netui.pageflow.annotations.*;
@Jpf.Controller(
- simpleActions = {@Jpf.SimpleAction(name="begin",path="index.jsp")},
- validatableBeans={
- @Jpf.ValidatableBean(
- type=Controller.MyForm.class,
- validatableProperties={
- @Jpf.ValidatableProperty(
- propertyName="date",
- displayName="This field",
- validateRequired=@Jpf.ValidateRequired(),
- validateDate=@Jpf.ValidateDate(pattern="M-d-y")
- )
- }
- )
+ simpleActions={
+ @Jpf.SimpleAction(name="begin",path="index.jsp")
+ },
+ messageBundles={
+ @Jpf.MessageBundle(bundlePath="org.apache.beehive.samples.netui.resources.validation.messages")
}
)
public class Controller extends PageFlowController
{
+ /**
+ * Basic submit action -- uses validation rules defined on MyForm.
+ */
@Jpf.Action(
forwards={
@Jpf.Forward(name="success", path="success.jsp")
},
validationErrorForward=@Jpf.Forward(name="fail", navigateTo=Jpf.NavigateTo.currentPage)
)
- public Forward validate( MyForm form )
+ public Forward submit(MyForm form)
{
- getRequest().setAttribute("date", form.getDate());
- return new Forward( "success" );
+ Forward fwd = new Forward("success");
+ fwd.addActionOutput("value", form.getValue());
+ return fwd;
}
- public static class MyForm implements Serializable
+ /**
+ * This action adds an additional validation rule for the 'value' property.
+ */
+ @Jpf.Action(
+ forwards={
+ @Jpf.Forward(name="success", path="success.jsp")
+ },
+ validationErrorForward=@Jpf.Forward(name="fail", navigateTo=Jpf.NavigateTo.currentPage),
+
+ // This is the extra validation rule.
+ validatableProperties={
+ @Jpf.ValidatableProperty(
+ propertyName="value",
+ validateMaxLength=@Jpf.ValidateMaxLength(chars=4, messageKey="errors.toolong")
+ )
+ }
+ )
+ public Forward submitWithExtraRule(MyForm form)
{
- private String _date;
+ Forward fwd = new Forward("success");
+ fwd.addActionOutput("value", form.getValue());
+ return fwd;
+ }
+
+ /**
+ * The form bean class. Note that form beans do <i>not</i> have to be inner classes; validation
+ * annotations work on external form bean classes, too.
+ *
+ * This form bean class uses message resources from the page flow's message bundle (defined
+ * inside the @Jpf.Controller annotation). A form bean class can also define its <i>own</i>
+ * message bundle through the @Jpf.FormBean annotation.
+ */
+ public static class MyForm
+ implements Serializable
+ {
+ private String _value;
+ private String _confirmValue;
+
+ @Jpf.ValidatableProperty(
+ displayNameKey="displayname.value",
+ validateRequired=@Jpf.ValidateRequired(),
+ validateMinLength=@Jpf.ValidateMinLength(chars=3)
+ )
+ public String getValue()
+ {
+ return _value;
+ }
- public String getDate()
+ public void setValue( String value )
+ {
+ _value = value;
+ }
+
+ @Jpf.ValidatableProperty(
+ displayNameKey="displayname.confirmvalue",
+ validateRequired=@Jpf.ValidateRequired(),
+ validateValidWhen=@Jpf.ValidateValidWhen(
+ condition="${actionForm.confirmValue == actionForm.value}",
+ messageKey="errors.nomatch"
+ )
+ )
+ public String getConfirmValue()
{
- return _date;
+ return _confirmValue;
}
- public void setDate( String str )
+ public void setConfirmValue( String confirmValue )
{
- _date = str;
+ _confirmValue = confirmValue;
}
}
}
Modified: incubator/beehive/trunk/samples/netui-samples/validation/index.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/validation/index.jsp?rev=177943&r1=177942&r2=177943&view=diff
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/validation/index.jsp (original)
+++ incubator/beehive/trunk/samples/netui-samples/validation/index.jsp Mon May 23 01:45:09 2005
@@ -21,13 +21,43 @@
<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%>
<netui-template:template templatePage="/resources/template/template.jsp">
+
<netui-template:setAttribute name="samTitle" value="Validation"/>
+
<netui-template:section name="main">
- <netui:form action="validate">
- <p>Submit date (MM-dd-YYYY):
- <netui:textBox dataSource="actionForm.date"/></p>
- <netui:error key="date"/>
- <p><netui:button value="Submit"/></p>
+ <i>
+ The form bean <code>MyForm</code> uses annotations to define several validation rules:
+ <ul>
+ <li>Both fields are required.</li>
+ <li>The 'value' field must be at least three characters long.</li>
+ <li>The fields must match.</li>
+ </ul>
+ </i>
+ <br/>
+ <netui:form action="submit">
+ <table>
+ <tr>
+ <td>value:</td>
+ <td>
+ <netui:textBox dataSource="actionForm.value"/>
+ <netui:error key="value"/>
+ </td>
+ </tr>
+ <tr>
+ <td>confirm value:</td>
+ <td>
+ <netui:textBox dataSource="actionForm.confirmValue"/>
+ <netui:error key="confirmValue"/>
+ </td>
+ </tr>
+ </table>
+ <br/>
+ <netui:button value="Submit"/>
+ <i>(submits to action 'submit', which just uses the rules defined on <code>MyForm</code>)</i>
+ <br/>
+ <netui:button value="Submit (extra rule)" action="submitWithExtraRule"/>
+ <i>(submits to action 'submitWithExtraRule', which adds a rule that requires 'value' to be at most four characters long)</i>
</netui:form>
</netui-template:section>
+
</netui-template:template>
Modified: incubator/beehive/trunk/samples/netui-samples/validation/success.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/validation/success.jsp?rev=177943&r1=177942&r2=177943&view=diff
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/validation/success.jsp (original)
+++ incubator/beehive/trunk/samples/netui-samples/validation/success.jsp Mon May 23 01:45:09 2005
@@ -23,9 +23,8 @@
<netui-template:template templatePage="/resources/template/template.jsp">
<netui-template:setAttribute name="samTitle" value="Validation"/>
<netui-template:section name="main">
- <p>Data submitted: <netui:span value="${requestScope.date}"/></p>
- <p>Date validation successful.</p>
- <p><netui:anchor action="begin">Submit another date</netui:anchor></p>
+ <p>Validation successful.</p>
+ <p><netui:anchor action="begin">Start over</netui:anchor></p>
</netui-template:section>
</netui-template:template>