code: protected void applyAttributes()
              throws JspException {
          super.applyAttributes();
  
          if(_headerCellModel.getFilterHref() != null && _headerCellModel.getFilterAction() != null)
              throw new JspException(Bundle.getErrorString("HeaderCell_CantSetHrefAndAction"));
  
          if(_headerCellModel.getSortHref() != null && _headerCellModel.getSortAction() != null)
              throw new JspException(Bundle.getErrorString("HeaderCell_CantSetSortHrefAndAction"));
  
          if(_headerCellModel.isSortable()) {
              if(_headerCellModel.getSortExpression() == null)
                  throw new JspException(Bundle.getErrorString("HeaderCell_CantEnableSorting"));
  
              /* set an intelligent default for the sorting HREF */
              if(_headerCellModel.getSortHref() == null && _headerCellModel.getSortAction() == null)
                  _headerCellModel.setSortHref(JspUtil.getRequest(getJspContext()).getRequestURI());
          }
  
          if(_headerCellModel.isFilterable()) {
              if(_headerCellModel.getFilterExpression() == null)
                  throw new JspException(Bundle.getErrorString("HeaderCell_CantEnableFiltering"));
  
              /* set an intelligent default for the filtering HREF */
              if(_headerCellModel.getFilterHref() == null && _headerCellModel.getFilterAction() == null)
                  _headerCellModel.setFilterHref(JspUtil.getRequest(getJspContext()).getRequestURI());
          }
      }
docs: Apply the tag's attributes to the {@link HeaderCellModel}.
  @throws JspException when errors are encountered applying the attributes