为了格式化钱编辑框的格式,如保留后二位。Struts2没有提供相应的标签。struts1支持property的format属性。
于是自己写了一个关于数据格式化的插件。
在struts2包里的META-INF/struts-tags.tld
新增如下内容:
xml 代码
<tag>
<name>number</name>
<tag-class>org.apache.struts2.views.jsp.ui.NumberTag</tag-class>
<body-content>JSP</body-content>
<description><![CDATA[Render an HTML input field of type number]]></description>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>cssClass</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The css class to use for element]]></description>
</attribute>
<attribute>
<name>cssStyle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The css style definitions for element ro use]]></description>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>displayFormat</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[A pattern used for the visual display of the formatted number, e.g. ##.0#]]></description>
</attribute>
<attribute>
<name>id</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
</attribute>
<attribute>
<name>key</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
</attribute>
<attribute>
<name>label</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Label expression used for rendering a element specific label]]></description>
</attribute>
<attribute>
<name>labelposition</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Define label position of form element (top/left)]]></description>
</attribute>
<attribute>
<name>maxLength</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Deprecated. Use maxlength instead.]]></description>
</attribute>
<attribute>
<name>maxlength</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[HTML maxlength attribute]]></description>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The name to set for element]]></description>
</attribute>
<attribute>
<name>onblur</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onchange</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onclick</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>ondblclick</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onfocus</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onkeydown</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onkeypress</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onkeyup</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onmousedown</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onmousemove</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onmouseout</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onmouseover</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onmouseup</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onselect</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>readonly</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Whether the input is readonly]]></description>
</attribute>
<attribute>
<name>required</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
</attribute>
<attribute>
<name>requiredposition</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Define required position of required form element (left|right)]]></description>
</attribute>
<attribute>
<name>size</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[HTML size attribute]]></description>
</attribute>
<attribute>
<name>tabindex</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>template</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The template (other than default) to use for rendering the element]]></description>
</attribute>
<attribute>
<name>templateDir</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The template directory.]]></description>
</attribute>
<attribute>
<name>theme</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
</attribute>
<attribute>
<name>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html title attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>tooltip</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the tooltip of this particular component]]></description>
</attribute>
<attribute>
<name>tooltipConfig</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the tooltip configuration]]></description>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Preset the value of input element.]]></description>
</attribute>
</tag>
<name>number</name>
<tag-class>org.apache.struts2.views.jsp.ui.NumberTag</tag-class>
<body-content>JSP</body-content>
<description><![CDATA[Render an HTML input field of type number]]></description>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>cssClass</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The css class to use for element]]></description>
</attribute>
<attribute>
<name>cssStyle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The css style definitions for element ro use]]></description>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>displayFormat</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[A pattern used for the visual display of the formatted number, e.g. ##.0#]]></description>
</attribute>
<attribute>
<name>id</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
</attribute>
<attribute>
<name>key</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
</attribute>
<attribute>
<name>label</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Label expression used for rendering a element specific label]]></description>
</attribute>
<attribute>
<name>labelposition</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Define label position of form element (top/left)]]></description>
</attribute>
<attribute>
<name>maxLength</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Deprecated. Use maxlength instead.]]></description>
</attribute>
<attribute>
<name>maxlength</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[HTML maxlength attribute]]></description>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The name to set for element]]></description>
</attribute>
<attribute>
<name>onblur</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onchange</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onclick</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>ondblclick</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onfocus</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onkeydown</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onkeypress</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onkeyup</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onmousedown</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onmousemove</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onmouseout</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onmouseover</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onmouseup</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>onselect</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>readonly</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Whether the input is readonly]]></description>
</attribute>
<attribute>
<name>required</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
</attribute>
<attribute>
<name>requiredposition</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Define required position of required form element (left|right)]]></description>
</attribute>
<attribute>
<name>size</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[HTML size attribute]]></description>
</attribute>
<attribute>
<name>tabindex</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>template</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The template (other than default) to use for rendering the element]]></description>
</attribute>
<attribute>
<name>templateDir</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The template directory.]]></description>
</attribute>
<attribute>
<name>theme</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
</attribute>
<attribute>
<name>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the html title attribute on rendered html element]]></description>
</attribute>
<attribute>
<name>tooltip</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the tooltip of this particular component]]></description>
</attribute>
<attribute>
<name>tooltipConfig</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Set the tooltip configuration]]></description>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description><![CDATA[Preset the value of input element.]]></description>
</attribute>
</tag>
struts2-number-plugin插件
用法:与textfield几乎一模一样,只是多了一个displayFormat的属性,其格式取值例如:###.0#