Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. <%@tag description="Extended input tag to allow for sophisticated errors" pageEncoding="UTF-8"%>
  2. <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  3. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  4. <%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
  5. <%@taglib prefix="s" uri="http://www.springframework.org/tags" %>
  6.  
  7. <%@attribute name="path" required="true" type="java.lang.String"%>
  8. <%@attribute name="cssClass" required="false" type="java.lang.String"%>
  9. <%@attribute name="label" required="false" type="java.lang.String"%>
  10. <%@attribute name="required" required="false" type="java.lang.Boolean"%>
  11. <%@attribute name="prepend" required="false" type="java.lang.Boolean"%>
  12. <%@attribute name="append" required="false" type="java.lang.Boolean"%>
  13. <%@attribute name="icon" required="false" type="java.lang.String"%>
  14.  
  15. <c:if test="${empty label}">
  16.     <c:set var="label" value="${fn:toUpperCase(fn:substring(path, 0, 1))}${fn:toLowerCase(fn:substring(path, 1,fn:length(path)))}" />
  17. </c:if>
  18. <c:if test="${fn:length(icon) gt 1 }">
  19.   <c:set var="icon" value='<i class="${icon}"></i>'/>
  20. </c:if>
  21.  
  22. <s:bind path="${path}">
  23.   <div class="control-group ${status.error ? 'error' : '' }">
  24.     <label class="control-label" for="${path}">
  25.       <s:message code="${label}"/>
  26.       <c:if test="${required}">
  27.         <span class="required"> *</span>
  28.       </c:if>
  29.     </label>
  30.     <div class="controls">
  31.       <c:choose>
  32.         <c:when test="${prepend}">
  33.           <div class="input-prepend">
  34.             <span class="add-on">${icon}</span>
  35.             <form:input path="${path}" cssClass="${empty cssClass ? 'input-xlarge' : cssClass}"/>
  36.           </div>
  37.         </c:when>
  38.         <c:when test="${append}">
  39.           <div class="input-append">
  40.             <form:input path="${path}" cssClass="${empty cssClass ? 'input-xlarge' : cssClass}"/>
  41.             <span class="add-on">${icon}</span>
  42.           </div>
  43.         </c:when>
  44.         <c:otherwise>
  45.           <form:input path="${path}" cssClass="${empty cssClass ? 'input-xlarge' : cssClass}"/>
  46.         </c:otherwise>
  47.       </c:choose>
  48.       <c:if test="${status.error}">
  49.           <span class="help-inline">${status.errorMessage}</span>
  50.       </c:if>
  51.     </div>
  52.   </div>
  53. </s:bind>