web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans>
<form-bean name="bookForm" type="example.form.BookForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action
attribute="bookForm"
input="/book/book.jsp"
name="bookForm"
path="/book"
scope="request"
type="example.action.BookAction" >
<forward name="success" path="/book/success.jsp" />
<forward name="home" path="/book/book.jsp" />
</action>
</action-mappings>
<message-resources parameter="book.ApplicationResources" />
</struts-config>
book/books.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title>JSP for BookForm form</title>
</head>
<body>
<html:errors header="errors.header" footer="errors.footer"
prefix="errors.prefix" suffix="errors.suffix" />
<html:form action="/book">
id : <html:text property="id" />
<html:errors property="id" />
<br />
name : <html:text property="name" />
<html:errors property="name" />
<br />
pwd : <html:password property="pwd" />
<html:errors property="pwd" />
<br />
pwd2 : <html:password property="pwd2" />
<html:errors property="pwd2" />
<br />
<html:submit />
<html:cancel />
</html:form>
</body>
</html>
book/success.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
<head>
<html:base />
<title>success.jsp</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<bean:write name="book" property="id" scope="request"/>
<bean:write name="book" property="name" scope="request"/>
<bean:write name="book" property="pwd" scope="request"/>
<bean:write name="book" property="pwd2" scope="request"/>
</body>
</html:html>
book/ApplicationResources.properties
bookForm.id.required=id is required
bookForm.name.required=name is required
bookForm.pwd.required=pwd is required
bookForm.pwd2.required=pwd2 is required
errors.header=
errors.footer=
errors.prefix=<font color="red">*
errors.suffix=</font>
book/Utils.java
package book;
public class Utils {
public static boolean isEmpty(String msg) {
if (msg == null || msg.equals("")) {
return true;
} else {
return false;
}
}
}
example.action.BookAction.java
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package example.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;
import example.form.BookForm;
/**
* MyEclipse Struts Creation date: 10-07-2008
*
* XDoclet definition:
*
* @struts.action path="/book" name="bookForm" input="/book/book.jsp"
* scope="request" validate="true"
*/
public class BookAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
BookForm bookForm = (BookForm) form;
ActionMessages errors = bookForm.validate(mapping, request);
if (!errors.isEmpty()) {
saveMessages(request, errors);
return mapping.findForward("home");
}
request.setAttribute("book", bookForm);
return mapping.findForward("success");
}
}
example.form.BookForm.java
package example.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import book.Utils;
public class BookForm extends ActionForm {
private static final long serialVersionUID = 1L;
private String id;
private String name;
private String pwd;
private String pwd2;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getPwd2() {
return pwd2;
}
public void setPwd2(String pwd2) {
this.pwd2 = pwd2;
}
@Override
public void reset(ActionMapping mapping, HttpServletRequest request) {
this.id = null;
this.name = null;
this.pwd = null;
this.pwd2 = null;
}
@Override
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if (Utils.isEmpty(this.id)) {
errors.add("id", new ActionMessage("bookForm.id.required"));
}
if (Utils.isEmpty(this.name)) {
errors.add("name", new ActionMessage("bookForm.name.required"));
}
if (Utils.isEmpty(this.pwd)) {
errors.add("pwd", new ActionMessage("bookForm.pwd.required"));
}
if (Utils.isEmpty(this.pwd2)) {
errors.add("pwd2", new ActionMessage("bookForm.pwd2.required"));
}
return errors;
}
}
html:errors注意点:
1.<html:errors/>
2.saveErrors()
3.资源文件