﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-努力创造未来！-随笔分类-j2ee</title><link>http://www.blogjava.net/pdw2009/category/9724.html</link><description>J2EE相关应用技术日志</description><language>zh-cn</language><lastBuildDate>Sat, 02 Feb 2008 14:26:46 GMT</lastBuildDate><pubDate>Sat, 02 Feb 2008 14:26:46 GMT</pubDate><ttl>60</ttl><item><title>JFreeChart  中文API(不完整)</title><link>http://www.blogjava.net/pdw2009/archive/2008/02/01/178885.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Fri, 01 Feb 2008 10:39:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2008/02/01/178885.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/178885.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2008/02/01/178885.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/178885.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/178885.html</trackback:ping><description><![CDATA[<p _extended="true">JFreeChart类：<br _extended="true" />
void setAntiAlias(boolean flag)&nbsp;&nbsp;&nbsp;&nbsp;字体模糊边界<br _extended="true" />
void setBackgroundImage(Image image)&nbsp;&nbsp;&nbsp;背景图片<br _extended="true" />
void setBackgroundImageAlignment(int alignment)&nbsp;&nbsp;背景图片对齐方式（参数常量在org.jfree.ui.Align类中定义）<br _extended="true" />
void setBackgroundImageAlpha(float alpha)&nbsp;&nbsp;背景图片透明度（0.0～1.0）<br _extended="true" />
void setBackgroundPaint(Paint paint)&nbsp;&nbsp;&nbsp;背景色<br _extended="true" />
void setBorderPaint(Paint paint)&nbsp;&nbsp;&nbsp;边界线条颜色<br _extended="true" />
void setBorderStroke(Stroke stroke)&nbsp;&nbsp;&nbsp;边界线条笔触<br _extended="true" />
void setBorderVisible(boolean visible)&nbsp;&nbsp;&nbsp;边界线条是否可见</p>
<p _extended="true">-----------------------------------------------------------------------------------------------------------</p>
<p _extended="true">TextTitle类：<br _extended="true" />
void setFont(Font font)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;标题字体<br _extended="true" />
void setPaint(Paint paint)&nbsp;&nbsp;&nbsp;&nbsp;标题字体颜色<br _extended="true" />
void setText(String text)&nbsp;&nbsp;&nbsp;&nbsp;标题内容</p>
<p _extended="true">-----------------------------------------------------------------------------------------------------------</p>
<p _extended="true">StandardLegend(Legend)类：<br _extended="true" />
void setBackgroundPaint(Paint paint)&nbsp;&nbsp;&nbsp;图示背景色<br _extended="true" />
void setTitle(String title)&nbsp;&nbsp;&nbsp;&nbsp;图示标题内容<br _extended="true" />
void setTitleFont(Font font)&nbsp;&nbsp;&nbsp;&nbsp;图示标题字体<br _extended="true" />
void setBoundingBoxArcWidth(int arcWidth)&nbsp;&nbsp;图示边界圆角宽<br _extended="true" />
void setBoundingBoxArcHeight(int arcHeight)&nbsp;&nbsp;图示边界圆角高<br _extended="true" />
void setOutlinePaint(Paint paint)&nbsp;&nbsp;&nbsp;图示边界线条颜色<br _extended="true" />
void setOutlineStroke(Stroke stroke)&nbsp;&nbsp;&nbsp;图示边界线条笔触<br _extended="true" />
void setDisplaySeriesLines(boolean flag)&nbsp;&nbsp;图示项是否显示横线（折线图有效）<br _extended="true" />
void setDisplaySeriesShapes(boolean flag)&nbsp;&nbsp;图示项是否显示形状（折线图有效）<br _extended="true" />
void setItemFont(Font font)&nbsp;&nbsp;&nbsp;&nbsp;图示项字体<br _extended="true" />
void setItemPaint(Paint paint)&nbsp;&nbsp;&nbsp;&nbsp;图示项字体颜色<br _extended="true" />
void setAnchor(int anchor)&nbsp;&nbsp;&nbsp;&nbsp;图示在图表中的显示位置（参数常量在Legend类中定义）</p>
<p _extended="true">-----------------------------------------------------------------------------------------------------------</p>
<p _extended="true">Axis类：<br _extended="true" />
void setVisible(boolean flag)&nbsp;&nbsp;&nbsp;&nbsp;坐标轴是否可见<br _extended="true" />
void setAxisLinePaint(Paint paint)&nbsp;&nbsp;&nbsp;坐标轴线条颜色（3D轴无效）<br _extended="true" />
void setAxisLineStroke(Stroke stroke)&nbsp;&nbsp;&nbsp;坐标轴线条笔触（3D轴无效）<br _extended="true" />
void setAxisLineVisible(boolean visible)&nbsp;&nbsp;坐标轴线条是否可见（3D轴无效）<br _extended="true" />
void setFixedDimension(double dimension)&nbsp;&nbsp;（用于复合表中对多坐标轴的设置）<br _extended="true" />
void setLabel(String label)&nbsp;&nbsp;&nbsp;&nbsp;坐标轴标题<br _extended="true" />
void setLabelFont(Font font)&nbsp;&nbsp;&nbsp;&nbsp;坐标轴标题字体<br _extended="true" />
void setLabelPaint(Paint paint)&nbsp;&nbsp;&nbsp;&nbsp;坐标轴标题颜色<br _extended="true" />
void setLabelAngle(double angle)`&nbsp;&nbsp;&nbsp;坐标轴标题旋转角度（纵坐标可以旋转）<br _extended="true" />
void setTickLabelFont(Font font)&nbsp;&nbsp;&nbsp;坐标轴标尺值字体<br _extended="true" />
void setTickLabelPaint(Paint paint)&nbsp;&nbsp;&nbsp;坐标轴标尺值颜色<br _extended="true" />
void setTickLabelsVisible(boolean flag)&nbsp;&nbsp;&nbsp;坐标轴标尺值是否显示<br _extended="true" />
void setTickMarkPaint(Paint paint)&nbsp;&nbsp;&nbsp;坐标轴标尺颜色<br _extended="true" />
void setTickMarkStroke(Stroke stroke)&nbsp;&nbsp;&nbsp;坐标轴标尺笔触<br _extended="true" />
void setTickMarksVisible(boolean flag)&nbsp;&nbsp;&nbsp;坐标轴标尺是否显示</p>
<p _extended="true">ValueAxis(Axis)类：<br _extended="true" />
void setAutoRange(boolean auto)&nbsp;&nbsp;&nbsp;&nbsp;自动设置数据轴数据范围<br _extended="true" />
void setAutoRangeMinimumSize(double size)&nbsp;&nbsp;自动设置数据轴数据范围时数据范围的最小跨度<br _extended="true" />
void setAutoTickUnitSelection(boolean flag)&nbsp;&nbsp;数据轴的数据标签是否自动确定（默认为true）<br _extended="true" />
void setFixedAutoRange(double length)&nbsp;&nbsp;&nbsp;数据轴固定数据范围（设置100的话就是显示MAXVALUE到MAXVALUE-100那段数据范围）<br _extended="true" />
void setInverted(boolean flag)&nbsp;&nbsp;&nbsp;&nbsp;数据轴是否反向（默认为false）<br _extended="true" />
void setLowerMargin(double margin)&nbsp;&nbsp;&nbsp;数据轴下（左）边距<br _extended="true" />
void setUpperMargin(double margin)&nbsp;&nbsp;&nbsp;数据轴上（右）边距<br _extended="true" />
void setLowerBound(double min)&nbsp;&nbsp;&nbsp;&nbsp;数据轴上的显示最小值<br _extended="true" />
void setUpperBound(double max)&nbsp;&nbsp;&nbsp;&nbsp;数据轴上的显示最大值<br _extended="true" />
void setPositiveArrowVisible(boolean visible)&nbsp;&nbsp;是否显示正向箭头（3D轴无效）<br _extended="true" />
void setNegativeArrowVisible(boolean visible)&nbsp;&nbsp;是否显示反向箭头（3D轴无效）<br _extended="true" />
void setVerticalTickLabels(boolean flag)&nbsp;&nbsp;数据轴数据标签是否旋转到垂直<br _extended="true" />
void setStandardTickUnits(TickUnitSource source)&nbsp;数据轴的数据标签（可以只显示整数标签，需要将AutoTickUnitSelection设false）</p>
<p _extended="true">NumberAxis(ValueAxis)类：<br _extended="true" />
void setAutoRangeIncludesZero(boolean flag)&nbsp;&nbsp;是否强制在自动选择的数据范围中包含0<br _extended="true" />
void setAutoRangeStickyZero(boolean flag)&nbsp;&nbsp;是否强制在整个数据轴中包含0，即使0不在数据范围中<br _extended="true" />
void setNumberFormatOverride(NumberFormat formatter)&nbsp;数据轴数据标签的显示格式<br _extended="true" />
void setTickUnit(NumberTickUnit unit)&nbsp;&nbsp;&nbsp;数据轴的数据标签（需要将AutoTickUnitSelection设false）</p>
<p _extended="true">DateAxis(ValueAxis)类：<br _extended="true" />
void setMaximumDate(Date maximumDate)&nbsp;&nbsp;&nbsp;日期轴上的最小日期<br _extended="true" />
void setMinimumDate(Date minimumDate)&nbsp;&nbsp;&nbsp;日期轴上的最大日期<br _extended="true" />
void setRange(Date lower,Date upper)&nbsp;&nbsp;&nbsp;日期轴范围<br _extended="true" />
void setDateFormatOverride(DateFormat formatter)&nbsp;日期轴日期标签的显示格式<br _extended="true" />
void setTickUnit(DateTickUnit unit)&nbsp;&nbsp;&nbsp;日期轴的日期标签（需要将AutoTickUnitSelection设false）<br _extended="true" />
void setTickMarkPosition(DateTickMarkPosition position)&nbsp;日期标签位置（参数常量在org.jfree.chart.axis.DateTickMarkPosition类中定义）</p>
<p _extended="true">CategoryAxis(Axis)类：<br _extended="true" />
void setCategoryMargin(double margin)&nbsp;&nbsp;&nbsp;分类轴边距<br _extended="true" />
void setLowerMargin(double margin)&nbsp;&nbsp;&nbsp;分类轴下（左）边距<br _extended="true" />
void setUpperMargin(double margin)&nbsp;&nbsp;&nbsp;分类轴上（右）边距<br _extended="true" />
void setVerticalCategoryLabels(boolean flag)&nbsp;&nbsp;分类轴标题是否旋转到垂直<br _extended="true" />
void setMaxCategoryLabelWidthRatio(float ratio)&nbsp;&nbsp;分类轴分类标签的最大宽度</p>
<p _extended="true">-----------------------------------------------------------------------------------------------------------</p>
<p _extended="true">Plot类：<br _extended="true" />
void setBackgroundImage(Image image)&nbsp;&nbsp;&nbsp;数据区的背景图片<br _extended="true" />
void setBackgroundImageAlignment(int alignment)&nbsp;&nbsp;数据区的背景图片对齐方式（参数常量在org.jfree.ui.Align类中定义）<br _extended="true" />
void setBackgroundPaint(Paint paint)&nbsp;&nbsp;&nbsp;数据区的背景图片背景色<br _extended="true" />
void setBackgroundAlpha(float alpha)&nbsp;&nbsp;&nbsp;数据区的背景透明度（0.0～1.0）<br _extended="true" />
void setForegroundAlpha(float alpha)&nbsp;&nbsp;&nbsp;数据区的前景透明度（0.0～1.0）<br _extended="true" />
void setDataAreaRatio(double ratio)&nbsp;&nbsp;&nbsp;数据区占整个图表区的百分比<br _extended="true" />
void setOutLinePaint(Paint paint)&nbsp;&nbsp;&nbsp;数据区的边界线条颜色<br _extended="true" />
void setOutLineStroke(Stroke stroke)&nbsp;&nbsp;&nbsp;数据区的边界线条笔触<br _extended="true" />
void setNoDataMessage(String message)&nbsp;&nbsp;&nbsp;没有数据时显示的消息<br _extended="true" />
void setNoDataMessageFont(Font font)&nbsp;&nbsp;&nbsp;没有数据时显示的消息字体<br _extended="true" />
void setNoDataMessagePaint(Paint paint)&nbsp;&nbsp;&nbsp;没有数据时显示的消息颜色</p>
<p _extended="true">CategoryPlot(Plot)类：<br _extended="true" />
void setDataset(CategoryDataset dataset)&nbsp;&nbsp;数据区的2维数据表<br _extended="true" />
void setColumnRenderingOrder(SortOrder order)&nbsp;&nbsp;数据分类的排序方式<br _extended="true" />
void setAxisOffset(Spacer offset)&nbsp;&nbsp;&nbsp;坐标轴到数据区的间距<br _extended="true" />
void setOrientation(PlotOrientation orientation)&nbsp;数据区的方向（PlotOrientation.HORIZONTAL或PlotOrientation.VERTICAL）<br _extended="true" />
void setDomainAxis(CategoryAxis axis)&nbsp;&nbsp;&nbsp;数据区的分类轴<br _extended="true" />
void setDomainAxisLocation(AxisLocation location)&nbsp;分类轴的位置（参数常量在org.jfree.chart.axis.AxisLocation类中定义）<br _extended="true" />
void setDomainGridlinesVisible(boolean visible)&nbsp;&nbsp;分类轴网格是否可见<br _extended="true" />
void setDomainGridlinePaint(Paint paint)&nbsp;&nbsp;分类轴网格线条颜色<br _extended="true" />
void setDomainGridlineStroke(Stroke stroke)&nbsp;&nbsp;分类轴网格线条笔触<br _extended="true" />
void setRangeAxis(ValueAxis axis)&nbsp;&nbsp;&nbsp;数据区的数据轴<br _extended="true" />
void setRangeAxisLocation(AxisLocation location)&nbsp;数据轴的位置（参数常量在org.jfree.chart.axis.AxisLocation类中定义）<br _extended="true" />
void setRangeGridlinesVisible(boolean visible)&nbsp;&nbsp;数据轴网格是否可见<br _extended="true" />
void setRangeGridlinePaint(Paint paint)&nbsp;&nbsp;&nbsp;数据轴网格线条颜色<br _extended="true" />
void setRangeGridlineStroke(Stroke stroke)&nbsp;&nbsp;数据轴网格线条笔触<br _extended="true" />
void setRenderer(CategoryItemRenderer renderer)&nbsp;&nbsp;数据区的表示者（详见Renderer组）<br _extended="true" />
void addAnnotation(CategoryAnnotation annotation)&nbsp;给数据区加一个注释<br _extended="true" />
void addRangeMarker(Marker marker,Layer layer)&nbsp;&nbsp;给数据区加一个数值范围区域</p>
<p _extended="true">PiePlot(Plot)类：<br _extended="true" />
void setDataset(PieDataset dataset)&nbsp;&nbsp;&nbsp;数据区的1维数据表<br _extended="true" />
void setIgnoreNullValues(boolean flag)&nbsp;&nbsp;&nbsp;忽略无值的分类<br _extended="true" />
void setCircular(boolean flag)&nbsp;&nbsp;&nbsp;&nbsp;饼图是否一定是正圆<br _extended="true" />
void setStartAngle(double angle)&nbsp;&nbsp;&nbsp;饼图的初始角度<br _extended="true" />
void setDirection(Rotation direction)&nbsp;&nbsp;&nbsp;饼图的旋转方向<br _extended="true" />
void setExplodePercent(int section,double percent)&nbsp;抽取的那块（1维数据表的分类下标）以及抽取出来的距离（0.0～1.0），3D饼图无效<br _extended="true" />
void setLabelBackgroundPaint(Paint paint)&nbsp;&nbsp;分类标签的底色<br _extended="true" />
void setLabelFont(Font font)&nbsp;&nbsp;&nbsp;&nbsp;分类标签的字体<br _extended="true" />
void setLabelPaint(Paint paint)&nbsp;&nbsp;&nbsp;&nbsp;分类标签的字体颜色<br _extended="true" />
void setLabelLinkMargin(double margin)&nbsp;&nbsp;&nbsp;分类标签与图的连接线边距<br _extended="true" />
void setLabelLinkPaint(Paint paint)&nbsp;&nbsp;&nbsp;分类标签与图的连接线颜色<br _extended="true" />
void setLabelLinkStroke(Stroke stroke)&nbsp;&nbsp;&nbsp;分类标签与图的连接线笔触<br _extended="true" />
void setLabelOutlinePaint(Paint paint)&nbsp;&nbsp;&nbsp;分类标签边框颜色<br _extended="true" />
void setLabelOutlineStroke(Paint paint)&nbsp;&nbsp;&nbsp;分类标签边框笔触<br _extended="true" />
void setLabelShadowPaint(Paint paint)&nbsp;&nbsp;&nbsp;分类标签阴影颜色<br _extended="true" />
void setMaximumLabelWidth(double width)&nbsp;&nbsp;&nbsp;分类标签的最大长度（0.0～1.0）<br _extended="true" />
void setPieIndex(int index)&nbsp;&nbsp;&nbsp;&nbsp;饼图的索引（复合饼图中用到）<br _extended="true" />
void setSectionOutlinePaint(int section,Paint paint)&nbsp;指定分类饼的边框颜色<br _extended="true" />
void setSectionOutlineStroke(int section,Stroke stroke)&nbsp;指定分类饼的边框笔触<br _extended="true" />
void setSectionPaint(int section,Paint paint)&nbsp;&nbsp;指定分类饼的颜色<br _extended="true" />
void setShadowPaint(Paint paint)&nbsp;&nbsp;&nbsp;饼图的阴影颜色<br _extended="true" />
void setShadowXOffset(double offset)&nbsp;&nbsp;&nbsp;饼图的阴影相对图的水平偏移<br _extended="true" />
void setShadowYOffset(double offset)&nbsp;&nbsp;&nbsp;饼图的阴影相对图的垂直偏移<br _extended="true" />
void setLabelGenerator(PieSectionLabelGenerator generator)&nbsp;分类标签的格式，设置成null则整个标签包括连接线都不显示<br _extended="true" />
void setToolTipGenerator(PieToolTipGenerator generator)&nbsp;&nbsp;MAP中鼠标移上的显示格式<br _extended="true" />
void setURLGenerator(PieURLGenerator generator)&nbsp;&nbsp;&nbsp;MAP中钻取链接格式</p>
<p _extended="true">PiePlot3D(PiePlot)类：<br _extended="true" />
void setDepthFactor(double factor)&nbsp;&nbsp;&nbsp;3D饼图的Z轴高度（0.0～1.0）</p>
<p _extended="true">MultiplePiePlot(Plot)类：<br _extended="true" />
void setLimit(double limit)&nbsp;&nbsp;&nbsp;&nbsp;每个饼图之间的数据关联（详细比较复杂）&nbsp;&nbsp;&nbsp;<br _extended="true" />
void setPieChart(JFreeChart pieChart)&nbsp;&nbsp;&nbsp;每个饼图的显示方式（见JFreeChart类个PiePlot类）</p>
<p _extended="true">-----------------------------------------------------------------------------------------------------------</p>
<p _extended="true">AbstractRenderer类：<br _extended="true" />
void setItemLabelAnchorOffset(double offset)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据标签的与数据点的偏移<br _extended="true" />
void setItemLabelsVisible(boolean visible)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据标签是否可见<br _extended="true" />
void setItemLabelFont(Font font)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据标签的字体<br _extended="true" />
void setItemLabelPaint(Paint paint)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据标签的字体颜色<br _extended="true" />
void setItemLabelPosition(ItemLabelPosition position)&nbsp;&nbsp;&nbsp;&nbsp;数据标签位置<br _extended="true" />
void setPositiveItemLabelPosition(ItemLabelPosition position)&nbsp;&nbsp;&nbsp;正数标签位置<br _extended="true" />
void setNegativeItemLabelPosition(ItemLabelPosition position)&nbsp;&nbsp;&nbsp;负数标签位置<br _extended="true" />
void setOutLinePaint(Paint paint)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图形边框的线条颜色<br _extended="true" />
void setOutLineStroke(Stroke stroke)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图形边框的线条笔触<br _extended="true" />
void setPaint(Paint paint)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所有分类图形的颜色<br _extended="true" />
void setShape(Shape shape)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所有分类图形的形状（如折线图的点）<br _extended="true" />
void setStroke(Stroke stroke)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所有分类图形的笔触（如折线图的线）<br _extended="true" />
void setSeriesItemLabelsVisible(int series,boolean visible)&nbsp;&nbsp;&nbsp;指定分类的数据标签是否可见<br _extended="true" />
void setSeriesItemLabelFont(int series,Font font)&nbsp;&nbsp;&nbsp;&nbsp;指定分类的数据标签的字体<br _extended="true" />
void setSeriesItemLabelPaint(int series,Paint paint)&nbsp;&nbsp;&nbsp;&nbsp;指定分类的数据标签的字体颜色<br _extended="true" />
void setSeriesItemLabelPosition(int series,ItemLabelPosition position)&nbsp;&nbsp;数据标签位置<br _extended="true" />
void setSeriesPositiveItemLabelPosition(int series,ItemLabelPosition position)&nbsp;正数标签位置<br _extended="true" />
void setSeriesNegativeItemLabelPosition(int series,ItemLabelPosition position)&nbsp;负数标签位置<br _extended="true" />
void setSeriesOutLinePaint(int series,Paint paint)&nbsp;&nbsp;&nbsp;&nbsp;指定分类的图形边框的线条颜色<br _extended="true" />
void setSeriesOutLineStroke(int series,Stroke stroke)&nbsp;&nbsp;&nbsp;&nbsp;指定分类的图形边框的线条笔触<br _extended="true" />
void setSeriesPaint(int series,Paint paint)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定分类图形的颜色<br _extended="true" />
void setSeriesShape(int series,Shape shape)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定分类图形的形状（如折线图的点）<br _extended="true" />
void setSeriesStroke(int series,Stroke stroke)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定分类图形的笔触（如折线图的线）</p>
<p _extended="true">AbstractCategoryItemRenderer(AbstractRenderer)类：<br _extended="true" />
void setLabelGenerator(CategoryLabelGenerator generator)&nbsp;&nbsp;&nbsp;数据标签的格式<br _extended="true" />
void setToolTipGenerator(CategoryToolTipGenerator generator)&nbsp;&nbsp;&nbsp;MAP中鼠标移上的显示格式<br _extended="true" />
void setItemURLGenerator(CategoryURLGenerator generator)&nbsp;&nbsp;&nbsp;MAP中钻取链接格式<br _extended="true" />
void setSeriesLabelGenerator(int series,CategoryLabelGenerator generator)&nbsp;指定分类的数据标签的格式<br _extended="true" />
void setSeriesToolTipGenerator(int series,CategoryToolTipGenerator generator)&nbsp;指定分类的MAP中鼠标移上的显示格式<br _extended="true" />
void setSeriesItemURLGenerator(int series,CategoryURLGenerator generator)&nbsp;指定分类的MAP中钻取链接格式</p>
<p _extended="true">BarRenderer(AbstractCategoryItemRenderer)类：<br _extended="true" />
void setDrawBarOutline(boolean draw)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是否画图形边框<br _extended="true" />
void setItemMargin(double percent)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;每个BAR之间的间隔<br _extended="true" />
void setMaxBarWidth(double percent)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;每个BAR的最大宽度<br _extended="true" />
void setMinimumBarLength(double min)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最短的BAR长度，避免数值太小而显示不出<br _extended="true" />
void setPositiveItemLabelPositionFallback(ItemLabelPosition position)&nbsp;&nbsp;无法在BAR中显示的正数标签位置<br _extended="true" />
void setNegativeItemLabelPositionFallback(ItemLabelPosition position)&nbsp;&nbsp;无法在BAR中显示的负数标签位置</p>
<p _extended="true">BarRenderer3D(BarRenderer)类：<br _extended="true" />
void setWallPaint(Paint paint)&nbsp;&nbsp;&nbsp;&nbsp;3D坐标轴的墙体颜色</p>
<p _extended="true">StackedBarRenderer(BarRenderer)类：<br _extended="true" />
没有特殊的设置</p>
<p _extended="true">StackedBarRenderer3D(BarRenderer3D)类：<br _extended="true" />
没有特殊的设置</p>
<p _extended="true">GroupedStackedBarRenderer(StackedBarRenderer)类：<br _extended="true" />
void setSeriesToGroupMap(KeyToGroupMap map)&nbsp;&nbsp;将分类自由的映射成若干个组（KeyToGroupMap.mapKeyToGroup(series,group)）</p>
<p _extended="true">LayeredBarRenderer(BarRenderer)类：<br _extended="true" />
void setSeriesBarWidth(int series,double width)&nbsp;&nbsp;设定每个分类的宽度（注意设置不要使某分类被覆盖）</p>
<p _extended="true">WaterfallBarRenderer(BarRenderer)类：<br _extended="true" />
void setFirstBarPaint(Paint paint)&nbsp;&nbsp;&nbsp;第一个柱图的颜色<br _extended="true" />
void setLastBarPaint(Paint paint)&nbsp;&nbsp;&nbsp;最后一个柱图的颜色<br _extended="true" />
void setPositiveBarPaint(Paint paint)&nbsp;&nbsp;&nbsp;正值柱图的颜色<br _extended="true" />
void setNegativeBarPaint(Paint paint)&nbsp;&nbsp;&nbsp;负值柱图的颜色</p>
<p _extended="true">IntervalBarRenderer(BarRenderer)类：<br _extended="true" />
需要传IntervalCategoryDataset作为数据源</p>
<p _extended="true">GanttBarRenderer(IntervalBarRenderer)类：<br _extended="true" />
void setCompletePaint(Paint paint)&nbsp;&nbsp;&nbsp;完成进度颜色<br _extended="true" />
void setIncompletePaint(Paint paint)&nbsp;&nbsp;&nbsp;未完成进度颜色<br _extended="true" />
void setStartPercent(double percent)&nbsp;&nbsp;&nbsp;设置进度条在整条中的起始位置（0.0～1.0）<br _extended="true" />
void setEndPercent(double percent)&nbsp;&nbsp;&nbsp;设置进度条在整条中的结束位置（0.0～1.0）</p>
<p _extended="true">StatisticBarRenderer(BarRenderer)类：<br _extended="true" />
需要传StatisticCategoryDataset作为数据源</p>
<p _extended="true">LineAndShapeRenderer(AbstractCategoryItemRenderer)类：<br _extended="true" />
void setDrawLines(boolean draw)&nbsp;&nbsp;&nbsp;&nbsp;是否折线的数据点之间用线连<br _extended="true" />
void setDrawShapes(boolean draw)&nbsp;&nbsp;&nbsp;是否折线的数据点根据分类使用不同的形状<br _extended="true" />
void setShapesFilled(boolean filled)&nbsp;&nbsp;&nbsp;所有分类是否填充数据点图形<br _extended="true" />
void setSeriesShapesFilled(int series,boolean filled)&nbsp;指定分类是否填充数据点图形<br _extended="true" />
void setUseFillPaintForShapeOutline(boolean use)&nbsp;指定是否填充数据点的Paint也被用于画数据点形状的边框</p>
<p _extended="true">LevelRenderer(AbstractCategoryItemRenderer)类：<br _extended="true" />
void setItemMargin(double percent)&nbsp;&nbsp;&nbsp;每个分类之间的间隔<br _extended="true" />
void setMaxItemWidth(double percent)&nbsp;&nbsp;&nbsp;每个分类的最大宽度</p>
<p _extended="true">CategoryStepRenderer(AbstractCategoryItemRenderer)类：<br _extended="true" />
void setStagger(boolean shouldStagger)&nbsp;&nbsp;&nbsp;不同分类的图是否交错</p>
<p _extended="true">MinMaxCategoryRenderer(AbstractCategoryItemRenderer)类：<br _extended="true" />
void setDrawLines(boolean drawLines)&nbsp;&nbsp;&nbsp;是否在每个分类线间画连接线<br _extended="true" />
void setGroupPaint(Paint groupPaint)&nbsp;&nbsp;&nbsp;一组图形连接线的颜色<br _extended="true" />
void setGroupStroke(Stroke groupStroke)&nbsp;&nbsp;&nbsp;一组图形连接线的笔触<br _extended="true" />
void setMaxIcon(Icon maxIcon)&nbsp;&nbsp;&nbsp;&nbsp;最大值的ICON<br _extended="true" />
void setMinIcon(Icon minIcon)&nbsp;&nbsp;&nbsp;&nbsp;最小值的ICON<br _extended="true" />
void setObjectIcon(Icon objectIcon)&nbsp;&nbsp;&nbsp;所有值的ICON</p>
<p _extended="true">AreaRender(AbstractCategoryItemRenderer)类：<br _extended="true" />
没有特殊的设置</p>
<p _extended="true">StackedAreaRender(AreaRender)类：<br _extended="true" />
没有特殊的设置</p>
<p _extended="true">-----------------------------------------------------------------------------------------------------------</p>
<img src ="http://www.blogjava.net/pdw2009/aggbug/178885.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2008-02-01 18:39 <a href="http://www.blogjava.net/pdw2009/archive/2008/02/01/178885.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>contentType类列列表</title><link>http://www.blogjava.net/pdw2009/archive/2007/12/13/167521.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Thu, 13 Dec 2007 08:09:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2007/12/13/167521.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/167521.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2007/12/13/167521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/167521.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/167521.html</trackback:ping><description><![CDATA[<p>".*"="application/octet-stream"<br />
".001"="application/x-001"<br />
".301"="application/x-301"<br />
".323"="text/h323"<br />
".906"="application/x-906"<br />
".907"="drawing/907"<br />
".a11"="application/x-a11"<br />
".acp"="audio/x-mei-aac"<br />
".ai"="application/postscript"<br />
".aif"="audio/aiff"<br />
".aifc"="audio/aiff"<br />
".aiff"="audio/aiff"<br />
".anv"="application/x-anv"<br />
".asa"="text/asa"<br />
".asf"="video/x-ms-asf"<br />
".asp"="text/asp"<br />
".asx"="video/x-ms-asf"<br />
".au"="audio/basic"<br />
".avi"="video/avi"<br />
".awf"="application/vnd.adobe.workflow"<br />
".biz"="text/xml"<br />
".bmp"="application/x-bmp"<br />
".bot"="application/x-bot"<br />
".c4t"="application/x-c4t"<br />
".c90"="application/x-c90"<br />
".cal"="application/x-cals"<br />
".cat"="application/vnd.ms-pki.seccat"<br />
".cdf"="application/x-netcdf"<br />
".cdr"="application/x-cdr"<br />
".cel"="application/x-cel"<br />
".cer"="application/x-x509-ca-cert"<br />
".cg4"="application/x-g4"<br />
".cgm"="application/x-cgm"<br />
".cit"="application/x-cit"<br />
".class"="java/*"<br />
".cml"="text/xml"<br />
".cmp"="application/x-cmp"<br />
".cmx"="application/x-cmx"<br />
".cot"="application/x-cot"<br />
".crl"="application/pkix-crl"<br />
".crt"="application/x-x509-ca-cert"<br />
".csi"="application/x-csi"<br />
".css"="text/css"<br />
".cut"="application/x-cut"<br />
".dbf"="application/x-dbf"<br />
".dbm"="application/x-dbm"<br />
".dbx"="application/x-dbx"<br />
".dcd"="text/xml"<br />
".dcx"="application/x-dcx"<br />
".der"="application/x-x509-ca-cert"<br />
".dgn"="application/x-dgn"<br />
".dib"="application/x-dib"<br />
".dll"="application/x-msdownload"<br />
".doc"="application/msword"<br />
".dot"="application/msword"<br />
".drw"="application/x-drw"<br />
".dtd"="text/xml"<br />
".dwf"="Model/vnd.dwf"<br />
".dwf"="application/x-dwf"<br />
".dwg"="application/x-dwg"<br />
".dxb"="application/x-dxb"<br />
".dxf"="application/x-dxf"<br />
".edn"="application/vnd.adobe.edn"<br />
".emf"="application/x-emf"<br />
".eml"="message/rfc822"<br />
".ent"="text/xml"<br />
".epi"="application/x-epi"<br />
".eps"="application/x-ps"<br />
".eps"="application/postscript"<br />
".etd"="application/x-ebx"<br />
".exe"="application/x-msdownload"<br />
".fax"="image/fax"<br />
".fdf"="application/vnd.fdf"<br />
".fif"="application/fractals"<br />
".fo"="text/xml"<br />
".frm"="application/x-frm"<br />
".g4"="application/x-g4"<br />
".gbr"="application/x-gbr"<br />
".gcd"="application/x-gcd"<br />
".gif"="image/gif"<br />
".gl2"="application/x-gl2"<br />
".gp4"="application/x-gp4"<br />
".hgl"="application/x-hgl"<br />
".hmr"="application/x-hmr"<br />
".hpg"="application/x-hpgl"<br />
".hpl"="application/x-hpl"<br />
".hqx"="application/mac-binhex40"<br />
".hrf"="application/x-hrf"<br />
".hta"="application/hta"<br />
".htc"="text/x-component"<br />
".htm"="text/html"<br />
".html"="text/html"<br />
".htt"="text/webviewhtml"<br />
".htx"="text/html"<br />
".icb"="application/x-icb"<br />
".ico"="image/x-icon"<br />
".ico"="application/x-ico"<br />
".iff"="application/x-iff"<br />
".ig4"="application/x-g4"<br />
".igs"="application/x-igs"<br />
".iii"="application/x-iphone"<br />
".img"="application/x-img"<br />
".ins"="application/x-internet-signup"<br />
".isp"="application/x-internet-signup"<br />
".IVF"="video/x-ivf"<br />
".java"="java/*"<br />
".jfif"="image/jpeg"<br />
".jpe"="image/jpeg"<br />
".jpe"="application/x-jpe"<br />
".jpeg"="image/jpeg"<br />
".jpg"="image/jpeg"<br />
".jpg"="application/x-jpg"<br />
".js"="application/x-javascript"<br />
".jsp"="text/html"<br />
".la1"="audio/x-liquid-file"<br />
".lar"="application/x-laplayer-reg"<br />
".latex"="application/x-latex"<br />
".lavs"="audio/x-liquid-secure"<br />
".lbm"="application/x-lbm"<br />
".lmsff"="audio/x-la-lms"<br />
".ls"="application/x-javascript"<br />
".ltr"="application/x-ltr"<br />
".m1v"="video/x-mpeg"<br />
".m2v"="video/x-mpeg"<br />
".m3u"="audio/mpegurl"<br />
".m4e"="video/mpeg4"<br />
".mac"="application/x-mac"<br />
".man"="application/x-troff-man"<br />
".math"="text/xml"<br />
".mdb"="application/msaccess"<br />
".mdb"="application/x-mdb"<br />
".mfp"="application/x-shockwave-flash"<br />
".mht"="message/rfc822"<br />
".mhtml"="message/rfc822"<br />
".mi"="application/x-mi"<br />
".mid"="audio/mid"<br />
".midi"="audio/mid"<br />
".mil"="application/x-mil"<br />
".mml"="text/xml"<br />
".mnd"="audio/x-musicnet-download"<br />
".mns"="audio/x-musicnet-stream"<br />
".mocha"="application/x-javascript"<br />
".movie"="video/x-sgi-movie"<br />
".mp1"="audio/mp1"<br />
".mp2"="audio/mp2"<br />
".mp2v"="video/mpeg"<br />
".mp3"="audio/mp3"<br />
".mp4"="video/mpeg4"<br />
".mpa"="video/x-mpg"<br />
".mpd"="application/vnd.ms-project"<br />
".mpe"="video/x-mpeg"<br />
".mpeg"="video/mpg"<br />
".mpg"="video/mpg"<br />
".mpga"="audio/rn-mpeg"<br />
".mpp"="application/vnd.ms-project"<br />
".mps"="video/x-mpeg"<br />
".mpt"="application/vnd.ms-project"<br />
".mpv"="video/mpg"<br />
".mpv2"="video/mpeg"<br />
".mpw"="application/vnd.ms-project"<br />
".mpx"="application/vnd.ms-project"<br />
".mtx"="text/xml"<br />
".mxp"="application/x-mmxp"<br />
".net"="image/pnetvue"<br />
".nrf"="application/x-nrf"<br />
".nws"="message/rfc822"<br />
".odc"="text/x-ms-odc"<br />
".out"="application/x-out"<br />
".p10"="application/pkcs10"<br />
".p12"="application/x-pkcs12"<br />
".p7b"="application/x-pkcs7-certificates"<br />
".p7c"="application/pkcs7-mime"<br />
".p7m"="application/pkcs7-mime"<br />
".p7r"="application/x-pkcs7-certreqresp"<br />
".p7s"="application/pkcs7-signature"<br />
".pc5"="application/x-pc5"<br />
".pci"="application/x-pci"<br />
".pcl"="application/x-pcl"<br />
".pcx"="application/x-pcx"<br />
".pdf"="application/pdf"<br />
".pdf"="application/pdf"<br />
".pdx"="application/vnd.adobe.pdx"<br />
".pfx"="application/x-pkcs12"<br />
".pgl"="application/x-pgl"<br />
".pic"="application/x-pic"<br />
".pko"="application/vnd.ms-pki.pko"<br />
".pl"="application/x-perl"<br />
".plg"="text/html"<br />
".pls"="audio/scpls"<br />
".plt"="application/x-plt"<br />
".png"="image/png"<br />
".png"="application/x-png"<br />
".pot"="application/vnd.ms-powerpoint"<br />
".ppa"="application/vnd.ms-powerpoint"<br />
".ppm"="application/x-ppm"<br />
".pps"="application/vnd.ms-powerpoint"<br />
".ppt"="application/vnd.ms-powerpoint"<br />
".ppt"="application/x-ppt"<br />
".pr"="application/x-pr"<br />
".prf"="application/pics-rules"<br />
".prn"="application/x-prn"<br />
".prt"="application/x-prt"<br />
".ps"="application/x-ps"<br />
".ps"="application/postscript"<br />
".ptn"="application/x-ptn"<br />
".pwz"="application/vnd.ms-powerpoint"<br />
".r3t"="text/vnd.rn-realtext3d"<br />
".ra"="audio/vnd.rn-realaudio"<br />
".ram"="audio/x-pn-realaudio"<br />
".ras"="application/x-ras"<br />
".rat"="application/rat-file"<br />
".rdf"="text/xml"<br />
".rec"="application/vnd.rn-recording"<br />
".red"="application/x-red"<br />
".rgb"="application/x-rgb"<br />
".rjs"="application/vnd.rn-realsystem-rjs"<br />
".rjt"="application/vnd.rn-realsystem-rjt"<br />
".rlc"="application/x-rlc"<br />
".rle"="application/x-rle"<br />
".rm"="application/vnd.rn-realmedia"<br />
".rmf"="application/vnd.adobe.rmf"<br />
".rmi"="audio/mid"<br />
".rmj"="application/vnd.rn-realsystem-rmj"<br />
".rmm"="audio/x-pn-realaudio"<br />
".rmp"="application/vnd.rn-rn_music_package"<br />
".rms"="application/vnd.rn-realmedia-secure"<br />
".rmvb"="application/vnd.rn-realmedia-vbr"<br />
".rmx"="application/vnd.rn-realsystem-rmx"<br />
".rnx"="application/vnd.rn-realplayer"<br />
".rp"="image/vnd.rn-realpix"<br />
".rpm"="audio/x-pn-realaudio-plugin"<br />
".rsml"="application/vnd.rn-rsml"<br />
".rt"="text/vnd.rn-realtext"<br />
".rtf"="application/msword"<br />
".rtf"="application/x-rtf"<br />
".rv"="video/vnd.rn-realvideo"<br />
".sam"="application/x-sam"<br />
".sat"="application/x-sat"<br />
".sdp"="application/sdp"<br />
".sdw"="application/x-sdw"<br />
".sit"="application/x-stuffit"<br />
".slb"="application/x-slb"<br />
".sld"="application/x-sld"<br />
".slk"="drawing/x-slk"<br />
".smi"="application/smil"<br />
".smil"="application/smil"<br />
".smk"="application/x-smk"<br />
".snd"="audio/basic"<br />
".sol"="text/plain"<br />
".sor"="text/plain"<br />
".spc"="application/x-pkcs7-certificates"<br />
".spl"="application/futuresplash"<br />
".spp"="text/xml"<br />
".ssm"="application/streamingmedia"<br />
".sst"="application/vnd.ms-pki.certstore"<br />
".stl"="application/vnd.ms-pki.stl"<br />
".stm"="text/html"<br />
".sty"="application/x-sty"<br />
".svg"="text/xml"<br />
".swf"="application/x-shockwave-flash"<br />
".tdf"="application/x-tdf"<br />
".tg4"="application/x-tg4"<br />
".tga"="application/x-tga"<br />
".tif"="image/tiff"<br />
".tif"="application/x-tif"<br />
".tiff"="image/tiff"<br />
".tld"="text/xml"<br />
".top"="drawing/x-top"<br />
".torrent"="application/x-bittorrent"<br />
".tsd"="text/xml"<br />
".txt"="text/plain"<br />
".uin"="application/x-icq"<br />
".uls"="text/iuls"<br />
".vcf"="text/x-vcard"<br />
".vda"="application/x-vda"<br />
".vdx"="application/vnd.visio"<br />
".vml"="text/xml"<br />
".vpg"="application/x-vpeg005"<br />
".vsd"="application/vnd.visio"<br />
".vsd"="application/x-vsd"<br />
".vss"="application/vnd.visio"<br />
".vst"="application/vnd.visio"<br />
".vst"="application/x-vst"<br />
".vsw"="application/vnd.visio"<br />
".vsx"="application/vnd.visio"<br />
".vtx"="application/vnd.visio"<br />
".vxml"="text/xml"<br />
".wav"="audio/wav"<br />
".wax"="audio/x-ms-wax"<br />
".wb1"="application/x-wb1"<br />
".wb2"="application/x-wb2"<br />
".wb3"="application/x-wb3"<br />
".wbmp"="image/vnd.wap.wbmp"<br />
".wiz"="application/msword"<br />
".wk3"="application/x-wk3"<br />
".wk4"="application/x-wk4"<br />
".wkq"="application/x-wkq"<br />
".wks"="application/x-wks"<br />
".wm"="video/x-ms-wm"<br />
".wma"="audio/x-ms-wma"<br />
".wmd"="application/x-ms-wmd"<br />
".wmf"="application/x-wmf"<br />
".wml"="text/vnd.wap.wml"<br />
".wmv"="video/x-ms-wmv"<br />
".wmx"="video/x-ms-wmx"<br />
".wmz"="application/x-ms-wmz"<br />
".wp6"="application/x-wp6"<br />
".wpd"="application/x-wpd"<br />
".wpg"="application/x-wpg"<br />
".wpl"="application/vnd.ms-wpl"<br />
".wq1"="application/x-wq1"<br />
".wr1"="application/x-wr1"<br />
".wri"="application/x-wri"<br />
".wrk"="application/x-wrk"<br />
".ws"="application/x-ws"<br />
".ws2"="application/x-ws"<br />
".wsc"="text/scriptlet"<br />
".wsdl"="text/xml"<br />
".wvx"="video/x-ms-wvx"<br />
".xdp"="application/vnd.adobe.xdp"<br />
".xdr"="text/xml"<br />
".xfd"="application/vnd.adobe.xfd"<br />
".xfdf"="application/vnd.adobe.xfdf"<br />
".xhtml"="text/html"<br />
".xls"="application/vnd.ms-excel"<br />
".xls"="application/x-xls"<br />
".xlw"="application/x-xlw"<br />
".xml"="text/xml"<br />
".xpl"="audio/scpls"<br />
".xq"="text/xml"<br />
".xql"="text/xml"<br />
".xquery"="text/xml"<br />
".xsd"="text/xml"<br />
".xsl"="text/xml"<br />
".xslt"="text/xml"<br />
".xwd"="application/x-xwd"<br />
".x_b"="application/x-x_b"<br />
".x_t"="application/x-x_t"</p>
<img src ="http://www.blogjava.net/pdw2009/aggbug/167521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2007-12-13 16:09 <a href="http://www.blogjava.net/pdw2009/archive/2007/12/13/167521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Structs2 Action使用</title><link>http://www.blogjava.net/pdw2009/archive/2007/10/31/157204.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Wed, 31 Oct 2007 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2007/10/31/157204.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/157204.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2007/10/31/157204.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/157204.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/157204.html</trackback:ping><description><![CDATA[Action中获取HttpServletResponse ,HttpServletRequest,HttpSession等Servlet相关变量有两种方式；<br />
1、非Ioc方式<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<p>要获得上述对象，关键Struts 2.0中com.opensymphony.xwork2.ActionContext类。我们可以通过它的静态方法getContext()获取当前Action的上下文对象。 另外，org.apache.struts2.ServletActionContext作为辅助类（Helper Class），可以帮助您快捷地获得这几个对象。 </p>
<p>HttpServletRequest request = ServletActionContext.getRequest(); <br />
HttpServletResponse response = ServletActionContext.getResponse(); <br />
HttpSession session = request.getSession();</p>
<br />
2、Ioc 方式<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 只要Action类实现SessionAware, ServletRequestAware, ServletResponseAware这几个接口，相应的变量会自动注入<br />
<br />
调用action的方法<br />
我们知道，当客户端请求一个action时，会生成一个Action 对应的变量，并执行execute方法，但这是需要跟据配置来确定的<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;action&nbsp;</span><span style="color: #ff0000">name&nbsp;</span><span style="color: #0000ff">="HelloWorld"</span><span style="color: #ff0000">&nbsp;class&nbsp;</span><span style="color: #0000ff">="tutorial.HelloWorld"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;result&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;/HelloWorld.jsp&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">&nbsp;result&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">&nbsp;action&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span></div>
要想改变默认执行的方法，需要在action节点加上要调用的方法名，如:<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">&lt;</span><span style="color: #800000">action&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="AliasHelloWorld"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="tutorial.HelloWorld"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="aliasAction"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/HelloWorld.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">action</span><span style="color: #0000ff">&gt;</span></div>
<br />
如果要实现类似于Structs1.x那样的DispatchAction方式的调用，配置例子如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">action&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="login!*"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="{1}"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="one.LoginAction"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">result&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="success"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="dispatcher"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="location"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/main.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">result&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="input"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/login.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">result&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="loginfail"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="dispatcher"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="location"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/login.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">action</span><span style="color: #0000ff">&gt;</span></div>
如上配置，如果只调用login.action，会执行默认方法execute()。<br />
<br />
Structs 2文件上传例子<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;one;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.File;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.text.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.ServletContext;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.commons.io.FileUtils;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.struts2.util.ServletContextAware;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.opensymphony.xwork2.ActionSupport;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;FileUploadAction&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;ActionSupport&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;ServletContextAware{<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;File&nbsp;doc;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;docContentType;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;docFileName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;ServletContext&nbsp;context;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;execute()</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;target</span><span style="color: #000000">=</span><span style="color: #000000">context.getRealPath(</span><span style="color: #000000">"</span><span style="color: #000000">/upload</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;file</span><span style="color: #000000">=</span><span style="color: #000000">generateFileName(docFileName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;dfile</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;File(target,file);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileUtils.copyFile(doc,dfile);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.SUCCESS;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;generateFileName(String&nbsp;fileName)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateFormat&nbsp;format&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SimpleDateFormat(</span><span style="color: #000000">"</span><span style="color: #000000">yyMMddHHmmss</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;formatDate&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;format.format(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Date());&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;random&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Random().nextInt(</span><span style="color: #000000">10000</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;position&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fileName.lastIndexOf(</span><span style="color: #000000">"</span><span style="color: #000000">.</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;extension&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fileName.substring(position);&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;formatDate&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;random&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;extension;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setServletContext(ServletContext&nbsp;context)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.context</span><span style="color: #000000">=</span><span style="color: #000000">context;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;ServletContext&nbsp;getContext()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;context;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setContext(ServletContext&nbsp;context)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.context&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;context;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;File&nbsp;getDoc()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;doc;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setDoc(File&nbsp;doc)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.doc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;doc;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getDocContentType()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;docContentType;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setDocContentType(String&nbsp;docContentType)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.docContentType&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;docContentType;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getDocFileName()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;docFileName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setDocFileName(String&nbsp;docFileName)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.docFileName&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;docFileName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
}<br />
</span></div>
<br />
<img src ="http://www.blogjava.net/pdw2009/aggbug/157204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2007-10-31 15:15 <a href="http://www.blogjava.net/pdw2009/archive/2007/10/31/157204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2表单标签使用</title><link>http://www.blogjava.net/pdw2009/archive/2007/10/23/155356.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Tue, 23 Oct 2007 09:52:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2007/10/23/155356.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/155356.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2007/10/23/155356.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/155356.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/155356.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;page&nbsp;language</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">java</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;contentType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/html;&nbsp;charset=utf-8</span><span style="color: #000000">"</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;pageEncoding</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">utf-8</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;taglib&nbsp;prefix</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">s</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;uri</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">/struts-tags</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;!</span><span style="color: #000000">DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">http://www.w3.org/TR/html4/loose.dtd</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">Content-Type</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/html;&nbsp;charset=utf-8</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000">Struct2&nbsp;标签</span><span style="color: #000000">&lt;/</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">style&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">css/text</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;body{font</span><span style="color: #000000">-</span><span style="color: #000000">size:12px}<br />
&nbsp;&nbsp;&nbsp;&nbsp;div{font</span><span style="color: #000000">-</span><span style="color: #000000">size:12px}<br />
&nbsp;&nbsp;&nbsp;&nbsp;td{font</span><span style="color: #000000">-</span><span style="color: #000000">size:12px}<br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">style</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">link&nbsp;href</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">&lt;s:url&nbsp;value=</span><span style="color: #000000">"</span><span style="color: #000000">/</span><span style="color: #000000">webwork</span><span style="color: #000000">/</span><span style="color: #000000">jscalendar</span><span style="color: #000000">/</span><span style="color: #000000">calendar</span><span style="color: #000000">-</span><span style="color: #000000">blue.css</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;/&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;rel</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">stylesheet</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/css</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;media</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">all</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">div&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">border:&nbsp;1px&nbsp;solid&nbsp;#CCCCCC;width:350px;align:center</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:form&nbsp;action</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">myTagAction!submit.action</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;method</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">post</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:checkbox&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">chk</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;label</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">chk..</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">ab</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;title</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">选择</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000">A<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;姓名</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:textfield&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">fname</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;label</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">用记名</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">裴</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;&lt;</span><span style="color: #000000">br</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:checkboxlist&nbsp;list</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">chklist</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">selchk</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;&lt;</span><span style="color: #000000">br</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:combobox&nbsp;list</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">years</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">year</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;maxlength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">2</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">s:combobox</span><span style="color: #000000">&gt;&lt;</span><span style="color: #000000">br</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:datepicker&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">date</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">date</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;format</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%Y-%m-%e</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;&lt;</span><span style="color: #000000">br</span><span style="color: #000000">&gt;--&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:hidden&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">vvname</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">hidden标签测试</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:label&nbsp;label</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%{text('kk')}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">kk</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;&lt;</span><span style="color: #000000">br</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:radio&nbsp;list</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">chklist</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">selchk</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">s:radio</span><span style="color: #000000">&gt;&lt;</span><span style="color: #000000">br</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:select&nbsp;list</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">citylist</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">city</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;listKey</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">local_net</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;listValue</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">city_name</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">s:select</span><span style="color: #000000">&gt;&lt;</span><span style="color: #000000">br</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:textarea&nbsp;label</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">Comments</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">kk</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;cols</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">10</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;rows</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">3</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;&lt;</span><span style="color: #000000">br</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">s:submit&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">提交</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">s:form</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">div</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span></div>
<br />
Action代码<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;one;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.opensymphony.xwork2.ActionSupport;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.opensymphony.xwork2.ModelDriven;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;domain.City;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<br />
<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;TagAction&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;ActionSupport&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;List&nbsp;citylist;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;city;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;chk;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;fname;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Map&nbsp;chklist;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;selchk[];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;year;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;List&nbsp;years;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Date&nbsp;date;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;vvname;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;kk;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;execute()</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.SUCCESS;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;submit()</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">chk=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">chk);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">city=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">city);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">fname=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">fname);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">selchk=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">selchk.length);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">selchk.length;i</span><span style="color: #000000">++</span><span style="color: #000000">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(selchk[i]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">vvname=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">vvname);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.INPUT;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;TagAction(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;citylist&nbsp;</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ArrayList();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;citylist.add(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;City(</span><span style="color: #000000">"</span><span style="color: #000000">510</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">广州</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;citylist.add(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;City(</span><span style="color: #000000">"</span><span style="color: #000000">530</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">佛山</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;citylist.add(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;City(</span><span style="color: #000000">"</span><span style="color: #000000">550</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">深圳</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chklist&nbsp;</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HashMap();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chklist.put(</span><span style="color: #000000">"</span><span style="color: #000000">zh</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">中国</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chklist.put(</span><span style="color: #000000">"</span><span style="color: #000000">en</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">美国</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chklist.put(</span><span style="color: #000000">"</span><span style="color: #000000">eg</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">英国</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chklist.put(</span><span style="color: #000000">"</span><span style="color: #000000">jp</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">日本</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;years</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ArrayList();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;years.add(</span><span style="color: #000000">"</span><span style="color: #000000">2001</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;years.add(</span><span style="color: #000000">"</span><span style="color: #000000">2002</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;years.add(</span><span style="color: #000000">"</span><span style="color: #000000">2003</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;years.add(</span><span style="color: #000000">"</span><span style="color: #000000">2004</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;years.add(</span><span style="color: #000000">"</span><span style="color: #000000">2005</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;years.add(</span><span style="color: #000000">"</span><span style="color: #000000">2006</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;isChk()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;chk;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setChk(</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;chk)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.chk&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;chk;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;List&nbsp;getCitylist()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;citylist;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setCitylist(List&nbsp;citylist)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.citylist&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;citylist;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getFname()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;fname;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setFname(String&nbsp;fname)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.fname&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fname;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getCity()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;city;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setCity(String&nbsp;city)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.city&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;city;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String[]&nbsp;getSelchk()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;selchk;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setSelchk(String[]&nbsp;selchk)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.selchk&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;selchk;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Map&nbsp;getChklist()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;chklist;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setChklist(Map&nbsp;chklist)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.chklist&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;chklist;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getYear()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;year;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setYear(String&nbsp;year)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.year&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;year;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;List&nbsp;getYears()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;years;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setYears(List&nbsp;years)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.years&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;years;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Date&nbsp;getDate()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;date;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setDate(Date&nbsp;date)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.date&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;date;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getVvname()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;vvname;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setVvname(String&nbsp;vvname)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.vvname&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;vvname;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getKk()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;kk;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setKk(String&nbsp;kk)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.kk&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;kk;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
}<br />
</span></div>
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">action&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="myTagAction!*"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="{1}"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="one.TagAction"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">result&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="input"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/tag_1.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/tag_1.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">action</span><span style="color: #0000ff">&gt;</span></div>
<br />
没有任何语言上的解析，详细文档，请参考：<br />
http://www.blogjava.net/pdw2009/archive/2007/04/06/108935.html
<img src ="http://www.blogjava.net/pdw2009/aggbug/155356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2007-10-23 17:52 <a href="http://www.blogjava.net/pdw2009/archive/2007/10/23/155356.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些优秀的自己却没用的小开源项目，</title><link>http://www.blogjava.net/pdw2009/archive/2007/10/11/152019.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Thu, 11 Oct 2007 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2007/10/11/152019.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/152019.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2007/10/11/152019.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/152019.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/152019.html</trackback:ping><description><![CDATA[Jettison&nbsp;&nbsp; <a href="http://jettison.codehaus.org/">http://jettison.codehaus.org/</a>&nbsp;&nbsp; json解析器，扣说xfire也使用了它&nbsp; <br />
XStream&nbsp;<a href="http://xstream.codehaus.org/">http://xstream.codehaus.org/</a>&nbsp; xml/json和java对象互换&nbsp;&nbsp;<br />
<br />
<font color="#c60a00">Hessian</font>&nbsp;&nbsp;&nbsp; <a href="http://www.caucho.com/hessian">http://www.caucho.com/<font color="#c60a00">hessian</a>&nbsp;&nbsp;&nbsp; 一种高效的RPC编程方式,Resin就是该出品的</font>
<img src ="http://www.blogjava.net/pdw2009/aggbug/152019.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2007-10-11 13:57 <a href="http://www.blogjava.net/pdw2009/archive/2007/10/11/152019.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>window下tomcat集群和负载均衡(转)</title><link>http://www.blogjava.net/pdw2009/archive/2007/08/03/134353.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Fri, 03 Aug 2007 15:53:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2007/08/03/134353.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/134353.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2007/08/03/134353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/134353.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/134353.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; 在企业级应用中，采用Tomcat作为应用服务器的系统不在少数，但是Tomcat作为轻量级应用服务器，它的负载能力确实有限，在系统上线后不堪重负，这时候人们都会想起集群来，可惜以往的版本做起集群来，实在不方便得很。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tomcat5.5在这方面作了很大的改进，我们首先可以实现Tomcat5.5的集群。<br>&nbsp;<br>一、配置Tomcat<br>1、直接将下载的apache-tomcat-5.5.17.zip解压缩到一个驱动器根目录下，将目录名改为Tomcat5517_S1，作为集群的第一个Tomcat服务器。<br>2、删除Tomcat5517_S1\ webapps、Tomcat5517_S1\temp下的所有内容。<br>3、在Tomcat5517_S1\conf\Catalina\localhost下建立ROOT.xml文件（注意：一定要用ROOT.xml这个文件名）。添加内容：<br>&lt;Context path="" docBase="发布路径" displayName="Tomcat_1"<br>&nbsp; debug="0" privileged="true"&gt;<br>&nbsp;<br>&nbsp;&nbsp;&nbsp; &lt;!-- Default set of monitored resources --&gt;<br>&nbsp;&nbsp;&nbsp; &lt;WatchedResource&gt;WEB-INF/web.xml&lt;/WatchedResource&gt;<br>&lt;/Context&gt;<br>&nbsp;<br>4、确认你的应用发布没有问题的情况下，运行Tomcat5517_S1\bin中的Startup.bat。<br>5、在浏览器中访问：<a href="http://localhost:8080/" target=_blank><u><font color=#0000ff>http://localhost:8080</font></u></a>，你的应用应该可以在此Tomcat中成功发布了。<br>这里要注意的是：<br>如果你的系统中使用了Taglib尤其是c.tld，请下载最新版本的jakarta-taglibs-standard-1.1.2.zip，从中取得standard.jar、jstl.jar和c.tld，放在相应的目录下，然后修改web.xml：<br>&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "<a href="http://java.sun.com/dtd/web-app_2_3.dtd" target=_blank><u><font color=#0000ff>http://java.sun.com/dtd/web-app_2_3.dtd</font></u></a>"&gt;<br>&nbsp;<br>&lt;web-app xmlns="<a href="http://java.sun.com/xml/ns/j2ee" target=_blank><u><font color=#0000ff>http://java.sun.com/xml/ns/j2ee</font></u></a>"<br>&nbsp;&nbsp;&nbsp; xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance" target=_blank><u><font color=#0000ff>http://www.w3.org/2001/XMLSchema-instance</font></u></a>"<br>&nbsp;&nbsp;&nbsp; xsi:schemaLocation="<a href="http://java.sun.com/xml/ns/j2ee" target=_blank><u><font color=#0000ff>http://java.sun.com/xml/ns/j2ee</font></u></a> <a href="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" target=_blank><u><font color=#0000ff>http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd</font></u></a>"<br>&nbsp;&nbsp;&nbsp; version="2.4"&gt;<br>&lt;/web-app&gt;<br>&nbsp;<br>其中所有的<br>&nbsp; &lt;taglib&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-uri&gt;/WEB-INF/struts-html.tld&lt;/taglib-uri&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-location&gt;/WEB-INF/struts-html.tld&lt;/taglib-location&gt;<br>&nbsp; &lt;/taglib&gt;<br>&nbsp;<br>要放在&lt;jsp-config&gt;元素中，像这样：<br>&lt;jsp-config&gt;<br>&nbsp;&nbsp; &lt;taglib&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;taglib-uri&gt;/WEB-INF/struts-template.tld&lt;/taglib-uri&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;taglib-location&gt;/WEB-INF/struts-template.tld&lt;/taglib-location&gt;<br>&nbsp;&nbsp; &lt;/taglib&gt;<br>&nbsp;&nbsp; &lt;taglib&gt;<br>&lt;taglib-uri&gt;/WEB-INF/c.tld&lt;/taglib-uri&gt;<br>&lt;taglib-location&gt;/WEB-INF/c.tld&lt;/taglib-location&gt;<br>&nbsp;&nbsp; &lt;/taglib&gt;<br>&lt;/jsp-config&gt; <br><br><span class=content>
<p>二、配置同一台机器中的Tomcat集群<br>1、将Tomcat5517_S1\ Catalina文件夹改名为Tomcat5517_S1\ Standalone，然后打开Tomcat5517_S1\conf\server.xml，修改几个关键的地方。<br>★ 远程关闭Tomcat的服务端口，原来是8005，改为10005。<br>★ 两个对外服务的Connector的端口：Http协议端口原来是8080，改为10001；AJP1.3协议端口原来是8009，改为10009。（这 里要注意的是在开始的调试阶段我们保持http协议端口的打开状态，用于浏览器直接与此Tomcat连接，等到调试成功后，所有的客户端只允许通过 apache访问，我们就要将提供Http协议的Connector关掉。）其中的redirectPort我都改成了10043。<br>★ 将原来的：&lt;Engine name="Catalina" defaultHost="localhost"&gt;注释掉，打开它上面的：&lt;Engine name="Standalone" defaultHost="localhost" jvmRoute="Tomcat1"&gt;，并且将jvmRoute的值改为Tomcat1。<br>★ 打开Cluster元素的注释，并且将Receiver元素的监听端口tcpListenPort改为10011。<br>2、修改Web.xml，加上&lt;distributable/&gt;，如下：<br>&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "<a href="http://java.sun.com/dtd/web-app_2_3.dtd" target=_blank><u><font color=#0000ff>http://java.sun.com/dtd/web-app_2_3.dtd</font></u></a>"&gt;<br>&nbsp;<br>&lt;web-app xmlns="<a href="http://java.sun.com/xml/ns/j2ee" target=_blank><u><font color=#0000ff>http://java.sun.com/xml/ns/j2ee</font></u></a>"<br>&nbsp;xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance" target=_blank><u><font color=#0000ff>http://www.w3.org/2001/XMLSchema-instance</font></u></a>"<br>&nbsp;xsi:schemaLocation="<a href="http://java.sun.com/xml/ns/j2ee" target=_blank><u><font color=#0000ff>http://java.sun.com/xml/ns/j2ee</font></u></a> <a href="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" target=_blank><u><font color=#0000ff>http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd</font></u></a>"<br>&nbsp;version="2.4"&gt;<br>&nbsp;&lt;distributable/&gt;<br>&lt;/web-app&gt;<br>&nbsp;<br>然后启动此Tomcat,可以看到有这样的提示信息：<br>2006-6-28 13:33:57 org.apache.catalina.cluster.tcp.SimpleTcpCluster start<br>信息: Cluster is about to start<br>2006-6-28 13:33:57 org.apache.catalina.cluster.tcp.ReplicationTransmitter start<br>信息: Start ClusterSender at cluster Standalone:type=Cluster,host=localhost with name Standalone:type=ClusterSender,host=localhost<br>2006-6-28 13:33:57 org.apache.catalina.cluster.mcast.McastService start<br>信息: Sleeping for 2000 milliseconds to establish cluster membership<br>2006-6-28 13:33:59 org.apache.catalina.cluster.mcast.McastService registerMBean<br>信息: membership mbean registered (Standalone:type=ClusterMembership,host=localhost)<br>2006-6-28 13:33:59 org.apache.catalina.cluster.deploy.FarmWarDeployer start<br>信息: Cluster FarmWarDeployer started.<br>2006-6-28 13:34:30 org.apache.coyote.http11.Http11BaseProtocol start<br>信息: Starting Coyote HTTP/1.1 on http-10001<br>2006-6-28 13:34:30 org.apache.jk.common.ChannelSocket init<br>信息: JK: ajp13 listening on /0.0.0.0:10009<br>2006-6-28 13:34:30 org.apache.jk.server.JkMain start<br>信息: Jk running ID=0 time=0/141&nbsp; config=null<br>&nbsp;<br>这表示Tomcat集群正常启动了。<br>3、复制Tomcat5517_S1文件夹，并更名为Tomcat5517_S2；然后修改Tomcat5517_S1\conf\server.xml，修改内容同上，要注意的是端口的修改：<br>★ 远程关闭Tomcat的服务端口，原来是8005，改为20005。<br>★ 两个对外服务的Connector的端口：Http协议端口原来是8080，改为20001；AJP1.3协议端口原来是8009，改为20009。其中的redirectPort我都改成了20043。<br>★ 将原来的：&lt;Engine name="Catalina" defaultHost="localhost"&gt;注释掉，打开它上面的：&lt;Engine name="Standalone" defaultHost="localhost" jvmRoute="Tomcat2"&gt;，并且将jvmRoute的值改为Tomcat2。<br>★ 打开Cluster元素的注释，并且将Receiver元素的监听端口tcpListenPort改为20011。<br>启动Tomcat2，可以看到有如下提示：<br>在Tomcat1中：<br>2006-6-28 14:25:46 org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded<br>信 息: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.1.192:20011,catalina,192.168.1.192,20011, alive=40]<br>&nbsp;<br>在Tomcat2中：<br>2006-6-28 14:25:44 org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded<br>信 息: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.1.192:10011,catalina,192.168.1.192,10011, alive=3105085]<br>&nbsp;<br>这表示两个Tomcat已经建立了集群，并保持Session同步了<br><br><span class=content>
<p>三、配置Apache</p>
<p>Apache2.2提供了最新的mod_proxy_balancer模块，这是我们这次实践过程中完成负载均衡的利器。安装完Apache之后，直接打开conf\httpd.conf文件：</p>
<p>★ 打开必要的模块：<br>LoadModule proxy_module modules/mod_proxy.so<br>LoadModule proxy_ajp_module modules/mod_proxy_ajp.so<br>LoadModule proxy_balancer_module modules/mod_proxy_balancer.so<br>LoadModule proxy_http_module modules/mod_proxy_http.so</p>
<p>★ 在httpd.conf的最后加上：</p>
<p>ProxyRequests Off</p>
<p>ProxyPass / balancer://myCluster/<br>&lt;Proxy balancer://myCluster/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BalancerMember ajp://localhost:10009 route=Tomcat1 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BalancerMember ajp://localhost:20009 route=Tomcat2 <br>&lt;/Proxy&gt;</p>
<p>然后启动apache，开始测试你的应用在集群环境下的表现吧！</p>
</span>
<p>&#160;</p>
</span><br>
<img src ="http://www.blogjava.net/pdw2009/aggbug/134353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2007-08-03 23:53 <a href="http://www.blogjava.net/pdw2009/archive/2007/08/03/134353.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xwork配置详述</title><link>http://www.blogjava.net/pdw2009/archive/2007/04/06/108995.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Fri, 06 Apr 2007 10:36:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2007/04/06/108995.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/comments/108995.html</wfw:comment><comments>http://www.blogjava.net/pdw2009/archive/2007/04/06/108995.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/pdw2009/comments/commentRss/108995.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pdw2009/services/trackbacks/108995.html</trackback:ping><description><![CDATA[&nbsp;
<h2><a name=_Toc76287483></a><a name=_Toc75838950><span><span>XWork</span></span></a><span><span><span>配置详述</span></span></span></h2>
<p><span>XWork</span><span>配置文件是以&#8220;</span><span>xwork</span><span>&#8221;命名的</span><span>.xml</span><span>文件，它必需放到类路径（</span><span>classPath</span><span>）的根目录，</span> <span>Web</span><span>应用一般放在</span><span>classes</span><span>目录中，它需要遵守</span><span>DTD</span><span>的规范（现在是</span><span>xwork-1.0.dtd</span><span>）。这个文件定义了我们的</span><span>Action</span><span>，</span><span>Interceptor</span><span>，</span><span>Result</span><span>的配置和相互之间的映射。下面我们看看用户注册的完整</span><span>XWork</span><span>配置文件：</span></p>
<p><span>&lt;!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd"&gt;</span></p>
<p>&nbsp;</p>
<p><span>&lt;xwork&gt;</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp; </span>&lt;include file="webwork-default.xml"/&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp; </span></span></p>
<p><span><span>&nbsp;&nbsp;&nbsp; </span>&lt;package name="example" extends="webwork-default"&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;action name="register" class="example.register.RegisterAction" &gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;result name="success" type="dispatcher"&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;param name="location"&gt;/register-result.jsp&lt;/param&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/result&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;interceptor-ref name="params"/&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/action&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;action name="registersupport" class="example.register.RegisterActionSupport" &gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;result name="success" type="dispatcher"&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;param name="location"&gt;/register-result.jsp&lt;/param&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/result&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;result name="input" type="dispatcher"&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;param name="location"&gt;/registerSupport.jsp&lt;/param&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/result&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;interceptor-ref name="validationWorkflowStack"/&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/action&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
<p><span><span>&nbsp;&nbsp;&nbsp; </span>&lt;/package&gt;</span></p>
<p>&nbsp;</p>
<p><span>&lt;/xwork&gt;</span></p>
<h3><a name=_Toc76287484></a><a name=_Toc75838951><span><span>xwork.xml</span></span></a><span><span><span>文件的标签元素</span></span></span></h3>
<p><strong><span>Xwork</span></strong><strong><span>：</span></strong><span>xwork</span><span>配置文件的所有内容，都是定义在</span><span>&lt;xwork&gt;</span><span>标签中，它的直接子标签有</span><span>&lt;package&gt;</span><span>和</span><span>&lt;include&gt;</span><span>。</span></p>
<p><strong><span>Package</span></strong><strong><span>：</span></strong><span>我们的</span><span>Action</span><span>，</span><span>Interceptor</span><span>，</span><span>Result</span><span>都是在此标签中定义。</span><span>&lt;package&gt;</span><span>标签有一个必需的属性&#8220;</span><span>name</span><span>&#8221;，它用来标识唯一的一个</span><span>package</span><span>。属性&#8220;</span><span>extends</span><span>&#8221;是可选的，它用来继承前面定义的一个或一个以上</span><span>package</span><span>配置信息，包括所有的</span><span>interceptor</span><span>、</span><span>interceptor-stack</span><span>和</span><span>action</span><span>的配置信息。注意，配置文件按文档的顺序，由上向下执行，因此，用&#8220;</span><span>extends</span><span>&#8221;引用的</span><span>package</span><span>必需在引用之前定义。属性&#8220;</span><span>sbstract</span><span>&#8221;是可选的，它用来设置</span><span>package</span><span>为抽象的</span><span>package</span><span>，它可以被继承同时它的</span><span>Action</span><span>配置信息在运行时将不可见。</span></p>
<p><span>属性</span><span>namespace</span><span>也是可选的，它用来分隔不同</span><span>package</span><span>定义的</span><span>action</span><span>，让这些</span><span>action</span><span>处于不同的命名空间（</span><span>namespaces</span><span>）。这样，我们不同的</span><span>package</span><span>可以有相同的</span><span>action</span><span>命名，因为可以通过命名空间来区分。如果不指定</span><span>namespace</span><span>，默认的是空字符串。命名空间也可以被用在安全控制方面，它可以根据不同的命名空间指定不同的访问权限。</span></p>
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=79>
            <p><strong><span>属</span> </strong><strong><span>性</span></strong></p>
            </td>
            <td vAlign=top width=72>
            <p><strong><span>是否必需</span></strong></p>
            </td>
            <td vAlign=top width=417>
            <p><strong><span>描</span><span><span>&nbsp;&nbsp; </span></span></strong><strong><span>述</span></strong></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=79>
            <p><span>name</span></p>
            </td>
            <td vAlign=top width=72>
            <p><span>是</span></p>
            </td>
            <td vAlign=top width=417>
            <p><span>用来标识</span><span>package</span><span>的名称</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=79>
            <p><span>extends</span></p>
            </td>
            <td vAlign=top width=72>
            <p><span>否</span></p>
            </td>
            <td vAlign=top width=417>
            <p><span>继承它所扩展的</span><span>package</span><span>配置信息</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=79>
            <p><span>namespace</span></p>
            </td>
            <td vAlign=top width=72>
            <p><span>否</span></p>
            </td>
            <td vAlign=top width=417>
            <p><span>指定</span><span>package</span><span>的命名空间，默认是</span><span>&#8221;&#8221;</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=79>
            <p><span>abstract</span></p>
            </td>
            <td vAlign=top width=72>
            <p><span>否</span></p>
            </td>
            <td vAlign=top width=417>
            <p><span>声明</span><span>package</span><span>是抽象的</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p><strong><span>Result-type</span></strong><strong><span>：</span></strong><span>用来定义输出结果类型的</span><span>Class</span><span>，它用简单的名－值对来定义。当然，我们自己写的输出结果类型也必需在这里定义。例如：</span></p>
<p><span>&lt;result-type name="dispatcher" class="com.opensymphony.webwork.dispatcher.ServletDispatcherResult" default="true"/&gt;</span><span>，</span><span>default="true"</span><span>表示如果在</span><span>Action</span><span>的</span><span>result</span><span>中不指定</span><span>result-type</span><span>，就使用这个默认的</span><span>result-type</span><span>。</span></p>
<p>&nbsp;</p>
<p><strong><span>Interceptors</span></strong><strong><span>：</span></strong><span>它是一个简单的</span><span>&lt;interceptors&gt; &nbsp;&lt;interceptors/&gt;</span><span>标签，我们的</span><span>interceptor</span><span>和</span><span>interceptor-stack</span><span>都在此标签内定义。</span></p>
<p>&nbsp;</p>
<p><strong><span>Interceptor</span></strong><strong><span>：</span></strong><span>当然，就是用来定义我们的拦截器。它的定义非常简单，名－值对的形式。例如：</span><span>&lt;interceptor</span><span> <span>name=</span><span>"timer"</span> <span>class=</span><span>"com.opensymphony.xwork.interceptor.TimerInterceptor"</span><span>/&gt;</span></span><span>。在</span><span>action</span><span>中，可以通过</span><span>&lt;interceptor-ref /&gt;</span><span>来直接引用前面定义了的拦截器。</span></p>
<p>&nbsp;</p>
<p><strong><span>Interceptor-stack</span></strong><strong><span>：</span></strong><span>用来将上面定义的</span><span>interceptor</span><span>组织成堆栈的形式，这样我们就可以创建一组标准的</span><span>interceptor</span><span>，让它按照顺序执行。在我们的</span><span>Action</span><span>中直接引用这个</span><span>interceptor</span><span>堆栈就可以了，不用逐个</span><span>interceptor</span><span>去引用。</span></p>
<p><span>例如：</span></p>
<p align=left><span>&lt;interceptor-stack</span><span> <span>name=</span><span>"validationWorkflowStack"</span><span>&gt;</span></span></p>
<p align=left><span>&nbsp;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&lt;interceptor-ref</span> <span>name=</span><span>"defaultStack"</span><span>/&gt;</span></span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;interceptor-ref</span> <span>name=</span><span>"validation"</span><span>/&gt;</span></span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;interceptor-ref</span> <span>name=</span><span>"workflow"</span><span>/&gt;</span></span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;/interceptor-stack&gt;</span></span></p>
<p><span>Interceptor Param</span><span>：我们的</span><span>interceptor</span><span>是在</span><span>ActionConfig</span><span>级别被实例化和存储的，也就是说一个</span><span>Action</span><span>引用的每个</span><span>interceptor</span><span>都会有相应的实例。这样，我们在定义和引用</span><span>interceptor</span><span>的时候都可以为它设置相应的参数值。例如：</span></p>
<p><span>&lt;interceptor name="test" class="com.opensymphony.xwork.TestInterceptor"&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp; </span>&lt;param name="foo"&gt;expectedFoo&lt;/param&gt;</span></p>
<p><span>&lt;/interceptor&gt;</span></p>
<p><span>在</span><span>Action</span><span>或</span><span>Interceptor-stack</span><span>中引用时也可以设置参数，例如：</span></p>
<p><span>&lt;interceptor-ref name="test"&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp; </span>&lt;param name="expectedFoo"&gt;expectedFoo&lt;/param&gt;</span></p>
<p><span>&lt;/interceptor-ref&gt;</span></p>
<p><span>注意：在</span><span>Action</span><span>引用的时候，如果引用的是</span><span>Interceptor-stack</span><span>，则不允许设置参数，否则会报错。</span></p>
<p>&nbsp;</p>
<p><strong><span>Global-results</span></strong><strong><span>：</span></strong><span>它允许我们定义全局的输出结果（</span><span>global result</span><span>），比如登陆页面、操作错误处理页面。只要继承它所在的</span><span>package</span><span>，这些输出结果都是可见的。</span></p>
<p><span>例如：</span></p>
<p align=left><span>&lt;global-results&gt;</span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;result</span> <span>name=</span><span>"login"</span> <span>type=</span><span>"dispatcher"</span><span>&gt;</span></span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;param</span> <span>name=</span><span>"location"</span><span>&gt;</span><span>/login.jsp</span><span>&lt;/param&gt;</span></span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;/result&gt;</span></span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;result</span> <span>name=</span><span>"error"</span> <span>type=</span><span>"dispatcher"</span><span>&gt;</span></span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;param</span> <span>name=</span><span>"location"</span><span>&gt;</span><span>/error.jsp</span><span>&lt;/param&gt;</span></span></p>
<p align=left><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;/result&gt;</span></span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;/global-results&gt;</span></span></p>
<p><span>如果我们的</span><span>Action</span><span>执行完返回&#8220;</span><span>login</span><span>&#8221;，它将调用上面的这个输出结果，将输出派遣到根目录下的</span><span>login.jsp</span><span>页面。</span></p>
<p>&nbsp;</p>
<p><strong><span>Action</span></strong><strong><span>：</span></strong><span>用来配置</span><span>Action</span><span>的名称（</span><span>name</span><span>）和它对应的</span><span>Class</span><span>。我们将通过这个</span><span>Action</span><span>的名称和它所在</span><span>package</span><span>的</span><span>namespace</span><span>去配置文件中取得这个</span><span>Action</span><span>的配置信息。它可以通过</span><span>&lt;param&gt;</span><span>来设置参数，</span><span>Action</span><span>在执行的时候会取得配置文件里设置的参数（通过拦截器</span><span>StaticParametersInterceptor</span><span>）。</span></p>
<p><span>Action</span><span>可以配置一个或多个输出结果</span><span>(result)</span><span>。一个输出结果的名称，对应于</span><span>Action</span><span>执行完成返回的字符串。</span><span>&lt;result&gt;</span><span>标签的</span><span>type</span><span>属性，对应我们前面定义过的</span><span>result-type</span><span>，说明</span><span>reslut</span><span>的类型。例如：</span></p>
<p><span>&lt;action name="register" class="example.register.RegisterAction" &gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;result name="success" type="dispatcher"&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;param name="location"&gt;/register-result.jsp&lt;/param&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/result&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;interceptor-ref name="params"/&gt;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/action&gt;</span></p>
<p><span>当然，我们的</span><span>Action</span><span>用到的拦截器也是在这里配置的，通过</span><span>&lt;interceptor-ref&gt;</span><span>标签，属性&#8220;</span><span>name</span><span>&#8221;的值，对应前面定义的</span><span>interceptor</span><span>或</span><span>interceptor-stack</span><span>。</span><span>如果</span><span>Action</span><span>中没有用</span><span>&lt;interceptor-ref&gt;</span><span>标签指定拦截器，它将使用默认的</span><span>&lt;default-interceptor-ref</span><span>&gt;</span><span>标签定义的拦截器。</span></p>
<p>&nbsp;</p>
<p><strong><span>Include</span></strong><strong><span>：</span></strong><span>xwork..xml</span><span>文件可以被分成好几个不同的文件，</span><span>xwork..xml</span><span>通过</span><span>&lt;include&gt;</span><span>标签引用被包含的文件，例如：</span><span>&lt;include file="webwork-default.xml"/&gt;</span><span>。被包含的文件必需是</span><span>package</span><span>标签里的内容，我们看看</span><span>&lt;include&gt;</span><span>标签在配置文件里的位置就知道了。如果要继承被包含文件的</span><span>package</span><span>，我们必需将</span><span>&lt;include&gt;</span><span>标签放在其上面，因为配置文件是按照由上而下的顺序解析的。</span></p>
<img src ="http://www.blogjava.net/pdw2009/aggbug/108995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pdw2009/" target="_blank">有猫相伴的日子</a> 2007-04-06 18:36 <a href="http://www.blogjava.net/pdw2009/archive/2007/04/06/108995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2表单标签(转)</title><link>http://www.blogjava.net/pdw2009/archive/2007/04/06/108935.html</link><dc:creator>有猫相伴的日子</dc:creator><author>有猫相伴的日子</author><pubDate>Fri, 06 Apr 2007 06:40:00 GMT</pubDate><guid>http://www.blogjava.net/pdw2009/archive/2007/04/06/108935.html</guid><wfw:comment>http://www.blogjava.net/pdw2009/com