Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
html
html
<html>
<head>
	<title>Error page for form with data</title>
</head>
<body>

Hmm, you don't seem to have entered a name. Go back and try again please.

</body>
</html>

Try it

Wiki MarkupDon't forget to compile your action to \[ webapp\]/WEB-INF/classes, and to restart your web application if necessary.

Go ahead and try it now: click the form submit button and see what happens. Try it with and without entering a name.

...

2. Create the form action

...

Paste this code into \[ src\]/lessons/Form04Action.java:

Code Block
java
java
package lessons;

import com.opensymphony.xwork.ActionSupport;
import com.opensymphony.webwork.interceptor.ParameterAware;

import java.util.Map;

public class Form04Action extends ActionSupport implements ParameterAware {

  Map parameters;

  public Map getParameters() {
    return parameters;
  }

  public void setParameters(Map parameters) {
    this.parameters = parameters;
  }

  public String execute() {
    String[] yourName = (String[]) parameters.get("yourName");
    if(yourName == null || yourName[0] == null || yourName[0].length() == 0)
      return ERROR;
    else
      return SUCCESS;
  }
}

Register the action in xwork.xml:

Wiki MarkupEdit \[ webapp\]/WEB-INF/classes/xwork.xml:

Code Block
xml
xml
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
 "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>
  <!-- Include webwork defaults (from WebWork JAR). -->
  <include file="webwork-default.xml" />
  
  <!-- Configuration for the default package. -->
  <package name="default" extends="webwork-default">
    <!-- Default interceptor stack. --> 
    <default-interceptor-ref name="defaultStack" /> 
    
    <!-- 02 --> 
    <action name="form02" class="lessons.Form02Action"> 
      <result name="success" type="dispatcher">page02-success.jsp</result> 
    </action> 

    <!-- 03 -->
    <action name="form03" class="lessons.Form03Action">
      <result name="success" type="dispatcher">page03-success.jsp</result>
      <result name="error" type="dispatcher">page03-error.jsp</result>
    </action>
    
    <!-- 04 -->
    <action name="form04" class="lessons.Form04Action">
      <result name="success" type="dispatcher">page04-success.jsp</result>
      <result name="error" type="dispatcher">page03-error.jsp</result>
      <interceptor-ref name="servlet-config"/>
    </action>

  </package>
</xwork>


Create the success and error pages

...

Code Block
html
html
<%@ taglib uri="webwork" prefix="ww" %>
<html>
<head>
	<title>Success page for form with data</title>
</head>
<body>

Hello, <ww:property value="parameters.yourName" />!

</body>
</html>

Try it

...

Don't forget to compile your action to \[ webapp\]/WEB-INF/classes, and to restart your web application if necessary.

Go ahead and try it now. Load page04.jsp, enter "Bob" in the text field, and click the form submit button. You should see page04-success.jsp saying "Hello, Bob!"

...