jc_dreaming 发表于 2013-2-6 11:10:33

动态页面

Action :

public ActionForward getReceiveFeeInfo(ActionMapping mapping,
   ActionForm form, HttpServletRequest request,
   HttpServletResponse response) throws Exception {
logger.debug("getReceiveFeeInfo");
request.setAttribute("tabHtml", this
    .renderTabControlHtml(InitTabControlXml("getReceiveFeeInfo")));
return mapping.findForward("getReceiveFeeInfo");
}



JSP:

<div id="tabcontrol" class="tabframe" align="left">${tabHtml}</div>

呵,根据不同的Action德操作,页面显示迥异。

看看吧:

生成页面显示信息

*initTabControlXml()

private String InitTabControlXml(String tabType) {
StringBuffer buffer = new StringBuffer("<Param>");
if ("getReceiveFeeInfo".equalsIgnoreCase(tabType)) {
   buffer.append("<cell caption='办件收费信息' selected='selected'/>");
   
} else if ("chargeHandleList".equalsIgnoreCase(tabType)) {
   buffer.append("<cell caption='办件收费信息' selected='unselected'>");
   buffer.append("<!]>");
   buffer.append("</cell>");

}
buffer.append("</Param>");
//System.out.println(buffer.toString());
return buffer.toString();
}


*renderTabControlHtml()解析xsl



   public String renderTabControlHtml(String controlXml) throws Exception{
    Reader in= new StringReader(controlXml);

    StringWriter writer = new StringWriter();
    ServletContext context = this.getServlet().getServletContext();
    String sheetname = context.getRealPath("/commons/tabcontrol/xml/tabcontrol.xsl");
   
      SAXBuilder builder = new SAXBuilder();
      Document doc = builder.build(in);

   //使用 开源的jdom 工具 transform.XSLTransformer;

      XSLTransformer transformer = new XSLTransformer(sheetname);
      Document doc2 = transformer.transform(doc);
   
      XMLOutputter outp = new XMLOutputter(Format.getPrettyFormat().setEncoding("UTF-8"));
      outp.output(doc2, writer);
   // System.out.println(writer.toString());
    return writer.toString();
   }



看看文件吧xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="UTF-8"/>
    <xsl:template match="/">
      <table cellSpacing="0" cellPadding="0" border="0" height="100%" id="tabtable">
            <tr class="tabframe_tr">
             <td class="tabsplit">|</td>
                <xsl:for-each select="Param/cell">
                  <td nowrap=""onmousedown="mousedowntab(this)" >
                     <xsl:attribute name="class">
                        <xsl:if test="normalize-space(@selected)='selected'">tabselected</xsl:if>
                        <xsl:if test="normalize-space(@selected)='unselected'">tab</xsl:if>
                     </xsl:attribute>
                        <atarget='_self'>
                        <xsl:attribute name="href">
                           <xsl:if test="normalize-space(.)=''">#</xsl:if>
                           <xsl:if test="normalize-space(.)!=''"><xsl:value-of select="normalize-space(.)"/></xsl:if>
                     </xsl:attribute>
                        <xsl:value-of select="@caption"/>
                        </a>
                     </td>
                     <td class="tabsplit">|</td>
                </xsl:for-each>
            </tr>
      </table>
    </xsl:template>
</xsl:stylesheet>
页: [1]
查看完整版本: 动态页面