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("<![CDATA[chargeHandle.do?dispatch=getReceiveFeeInfo]]>");
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>
<a target='_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>
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("<![CDATA[chargeHandle.do?dispatch=getReceiveFeeInfo]]>");
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>
<a target='_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>