File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Struts and the fly likes How to populate fields in a form with data retrieved from a database table Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "How to populate fields in a form with data retrieved from a database table" Watch "How to populate fields in a form with data retrieved from a database table" New topic

How to populate fields in a form with data retrieved from a database table

Tokunbo Oke
Ranch Hand

Joined: Sep 09, 2003
Posts: 57
//***Please note that I am using DispatchAction not Action***

Please tell me how to populate fields in a form with data retrieved from a database table.
Please note that I am particular about how to do this using Struts tags etc.
//***Please also note that I am using DispatchAction not Action***

Process flow
User presses "get customer" button in customer.jsp, customer.jsp calls, customerAction.getCustomer, customerAction.getCustomer method executes dbInterface.getCustomer.


<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<title><bean:message key="fieldL.title" /></title>

<body bgcolor="#999966" text="#000000" link="#0033FF" vlink="#FFFF00" alink="#00FF00">
<table width="500"
border="0" cellspacing="0" cellpadding="0">
<td> </td>
<td height="68" width="48%">
<div align="left">
<img src="file:///D|/Apps/Apache/Tomcat-4.1.27/webapps/employees/images/wxmainlogowhitespace.gif">
<td> </td>
<html:form action="/customer"
type="com.cargo.gen.CustomerForm" >
<table width="500" border="0">
<td width="54"><bean:message key="fieldL.customerNo"/>:</td>
<td width="37"><html:text property="customerNo" maxlength="5" size="5"/></td>
<td width="54"><bean:message key="fieldL.firstName" />:</td>
<td width="37"><html:text property="firstName" /></td>
<td width="54"><bean:message key="fieldL.lastName" />:</td>
<td width="37"><html:text property="lastName" /></td>
<td><bean:message key="fieldL.dob"/>:</td>
<td><html:text property="dob" /></td>
<td><bean:message key="" />:</td>
<td><html:text property="sex" /></td>
<td><bean:message key="fieldL.address"/>:</td>
<td><html:text property="address" size="30"/></td>
<td><bean:message key="fieldL.addressCode"/>:</td>
<td><html:text property="addressCode" size="10"/></td>
<td height="37"><bean:message key="" />:</td>
<td><html:text property="email" /></td>
<td><bean:message key="" />:</td>
<td><html:text property="phone" /></td>
<td><bean:message key="fieldL.regDate" />:</td>
<td><html:text property="regDate" /></td>
<td width="54"><bean:message key="fieldL.status"/>:</td>
<td width="37"><html:text property="status" maxlength="6" size=""/></td>
<td width="64"><bean:message key="fieldL.creditRating"/>:</td>
<td width="30"><html:text property="creditRating" maxlength="6" size="1"/></td>

<html:hidden property="methodToExecute" value="error"/>
<SCRIPT>function set(target) {document.forms[0].methodToExecute.value=target;}</SCRIPT>
<html:submit on click="set('regCustomer')">Register Customer</html:submit>
<html:submit on click="set('getCustomer')">Get Customer</html:submit>
<html:submit on click="set('updateCustomer');">Save Changes</html:submit>



struts-config.xml file:
<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"


<!-- ==================================== Data Source Configuration -->

<data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
<set-property property="url" value="jdbc:mysql://localhost/cargo" />
<set-property property="username" value="ola" />
<set-property property="password" value="ola" />

<!-- ======================================== Form Bean Definitions -->

<form-bean name="customerForm" type="com.cargo.gen.CustomerForm"/>

<!-- sample form bean descriptor for a DynaActionForm









end sample -->


<forward name="cust" path="/customer"/>

<!-- Default "Welcome" action -->
<!-- Forwards to Welcome.jsp -->
<action path="/customer"
<forward name="success" path="/jsp/customer.jsp"/>
<forward name="failure" path="/jsp/failure.jsp"/>

<message-resources parameter="com.cargo.resources.application"/>


Action Class:
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.DynaActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import java.util.ArrayList;
import java.util.Iterator;

//***Please note that I am using DispatchAction not Action***

public class CustomerAction extends DispatchAction {

public ActionForward getCustomer(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {

CustomerForm customerForm = (CustomerForm) form;
copyBeanDataToForm(customerForm, dbInterface.getCustomer( getDataSource(request), customerForm ) );

return mapping.findForward("success");

//***Please note that I am using DispatchAction not Action***
I agree. Here's the link:
subject: How to populate fields in a form with data retrieved from a database table
It's not a secret anymore!