Source code for /src/tags/form.tag

//======================================================================//
// Author: Mark Qian <markqian@hotmail.com>                             //
// WWW: http://www.coolshare.com                                        //
// Copyright (c) 2006, Mark Qian                                        //
//                                                                      //
// You must contact Mark Qian to get a permission of use                //
// in case you want to make any use of the codes except viewing it     //
// on Mark's site.                                                      //
//======================================================================//


<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ tag dynamic-attributes="attrMap" %>
<%@ attribute name="tile" required="true" %>

 <c:set var="controller" value="${beanMapCommand.beanMap[tile]}"/>
 <c:set var="model" value="${controller.model}"/>
 <c:set var="tileInfo" value="${controller.tileInfo}"/>
 <c:set var="numCol" value="${tileInfo.numCol }"/>
  <fieldset> 
 
 <legend><c:out value="${controller.displayName}"/></legend> 
 <c:forEach items="${tileInfo.displayFields}" var="field" varStatus="status"> 
  <c:set var="fieldName" value="${controller.name}.${field.name}"/>
  <c:set var="fieldValue" value="${controller.valueMap[field.name]}"/>
  <c:choose>
  <c:when test="${field.type == 'text'}">
  	<label for="<c:out value="${fieldName }"/>" accesskey="f"><c:out value="${field.displayName}"/>:</label> 
  	<input type="<c:out value="${field.type}"/>" name="<c:out value="${fieldName }"/>" id="<c:out value="${fieldName }"/>" size="<c:out value="${field.size}"/>" maxlength="<c:out value="${field.max}"/>" value="<c:out value="${fieldValue}"/>"> 
  </c:when>
  <c:when test="${field.type == 'select'}">
  	<label for="<c:out value="${fieldName }"/>" accesskey="f"><c:out value="${field.displayName}"/>:</label> 
  	<select type="<c:out value="${field.type}"/>" name="<c:out value="${fieldName }"/>" id="<c:out value="${fieldName }"/>" maxlength=<c:out value="${field.max}"/>" value="<c:out value="${controller.valueMap[field.name]}"/>"> 
  	 <c:forEach items="${beanMapCommand.beanMap[field.associateDate]}" var="item">
  	   <c:choose>
  			<c:when test="${fieldValue == item.id}">
  	   			<option value="<c:out value="${item.id}"/>" selected><c:out value="${item.name}"/></option>
  	   		</c:when>
  	   		<c:otherwise>
  	   			<option value="<c:out value="${item.id}"/>"><c:out value="${item.name}"/></option>
  	   		</c:otherwise>
  	   	</c:choose>
  	 </c:forEach>
  	</select>
  </c:when>  
  </c:choose>
   <c:choose>
  <c:when test="${status.index % numCol == 1}">
    <br/>
  </c:when>
  </c:choose>
  </c:forEach>
   </fieldset> 
   
  <c:forEach items="${tileInfo.hiddenFields}" var="field"> 
  <c:set var="fieldName" value="${controller.name}.${field.name}"/>
  <c:choose>
  <c:when test="${field.type == 'hidden'}">
    <input type="<c:out value="${field.type}"/>" name="<c:out value="${fieldName }"/>" id="<c:out value="${fieldName }"/>" size="<c:out value="${field.size}"/>" maxlength="<c:out value="${field.max}"/>" value="<c:out value="${controller.valueMap[field.name]}"/>">
  </c:when>
  </c:choose>
  </c:forEach>