actionForm:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.struts.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 pojo.Person;
import pojo.Address;
/**
* MyEclipse Struts
* Creation date: 08-26-2009
*
* XDoclet definition:
* @struts.form name="tForm"
*/
public class TForm extends ActionForm {
private String name;
private Person person=new Person();
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
return null;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}
action:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.struts.form.TForm;
public class TAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TForm tForm = (TForm) form;// TODO Auto-generated method stub
request.setAttribute("L", tForm);
return mapping.findForward("show");
}
}
提交页面:
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested"%>
<html>
<head>
<title>struts nested</title>
</head>
<body>
<html:form action="/t">
name : <html:text property="name"/><html:errors property="name"/><br/>
<nested:nest property="person">
<nested:text property="personName"></nested:text><br />
<nested:nest property="address">
Current nesting is :<nested:writeNesting /><br>
<nested:text property="addressName"></nested:text>
</nested:nest>
</nested:nest>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>
输出页面:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
nihao
<jsp:useBean id="L" type="com.struts.form.TForm" scope="request"></jsp:useBean>
<nested:root name="L">
<nested:write property="name"/>
<nested:nest property="person">
<nested:write property="personName"/>
<nested:nest property="address">
<nested:write property="addressName"/>
</nested:nest>
</nested:nest>
</nested:root>
</body>
</html>
struts-config.xml配置
<action
attribute="tForm"
input="/t.jsp"
name="tForm"
path="/t"
scope="request"
type="com.struts.action.TAction" >
<forward name="show" path="/index.jsp"></forward>
</action>
两个类
package pojo;
public class Address {
private String addressName;
public String getAddressName() {
return addressName;
}
public void setAddressName(String addressName) {
this.addressName = addressName;
}
}
package pojo;
public class Person {
private String personName;
public String getPersonName() {
return personName;
}
public void setPersonName(String personName) {
this.personName = personName;
}
private Address address=new Address();
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}