struts2 的<s:number > 标签的使用

来源:互联网 发布:计算机编程自学书籍 编辑:程序博客网 时间:2024/05/16 14:47

关于struts2的各种标签的使用,网上资料还是很多的,但是唯独这个number标签,资料很少。不知道是不是因为太简单,没人乐意写。我觉得这个东西还是很有用的,写几句。

标签定义文件:struts-tags.tld在struts2-core-x.x.x.jar 这个包下面,摘抄以下定义出来:

<tag>    <description><![CDATA[Render a formatted number.]]></description>    <name>number</name>    <tag-class>org.apache.struts2.views.jsp.NumberTag</tag-class>    <body-content>empty</body-content>    <attribute>      <description><![CDATA[The currency to use for a currency format]]></description>      <name>currency</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <description><![CDATA[Whether grouping is used]]></description>      <name>groupingUsed</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <description><![CDATA[Deprecated. Use 'var' instead]]></description>      <name>id</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <description><![CDATA[Maximum fraction digits]]></description>      <name>maximumFractionDigits</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <description><![CDATA[Maximum integer digits]]></description>      <name>maximumIntegerDigits</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <description><![CDATA[Minimum fraction digits]]></description>      <name>minimumFractionDigits</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <description><![CDATA[Maximum integer digits]]></description>      <name>minimumIntegerDigits</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <description><![CDATA[The number value to format]]></description>      <name>name</name>      <required>true</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <description><![CDATA[Parse integer only]]></description>      <name>parseIntegerOnly</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <description><![CDATA[The rounding mode to use - not implemented yet as this required Java 1.6]]></description>      <name>roundingMode</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <description><![CDATA[Type of number formatter (currency, integer, number or percent, default is number)]]></description>      <name>type</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <description><![CDATA[Name used to reference the value pushed into the Value Stack]]></description>      <name>var</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <dynamic-attributes>false</dynamic-attributes>  </tag>

有兴趣就挖掘以下org.apache.struts2.views.jsp.NumberTag类的源码咯。

写个例子,一看就清楚了:

Action类:

package test.action;import java.util.ArrayList;import java.util.List;import test.model.User;import com.opensymphony.xwork2.ActionSupport;public class TestAction extends ActionSupport {private static final long serialVersionUID = 2752911709036089235L;private int num;private List<User> userList;public String testNumber(){num = 56466126;userList = new ArrayList<User>();userList.add(new User("Mike",4546645));userList.add(new User("Sam",2389469));userList.add(new User("Keven",8923741));return SUCCESS;}//getter and setterpublic int getNum() {return num;}public void setNum(int num) {this.num = num;}public List<User> getUserList() {return userList;}public void setUserList(List<User> userList) {this.userList = userList;}}

User.java

package test.model;public class User {private String name;private int salary;public User(){}public User(String name,int salary){this.name = name;this.salary = salary;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getSalary() {return salary;}public void setSalary(int salary) {this.salary = salary;}}

JSP: number.jsp

<%@ taglib prefix="s" uri="/struts-tags"%><s:property value="num"/><br><s:number name="num" groupingUsed="true" type="currency" maximumFractionDigits="0" /><br><s:number name="num" groupingUsed="true" type="integer" maximumFractionDigits="0" /><br><s:number name="num" groupingUsed="true" type="integer" maximumFractionDigits="2" minimumFractionDigits="2"/><br><br><s:iterator value="userList" ><s:property value="name"/> <s:number name="salary" groupingUsed="true" type="integer" maximumFractionDigits="0" /><br></s:iterator><br><br><s:iterator value="userList" ><s:property value="name"/> <s:number name="salary" groupingUsed="true" type="currency" maximumFractionDigits="2" minimumFractionDigits="2"/><br></s:iterator>

struts.xml

<action name="number" class="test.action.TestAction" method="testNumber" ><result name="success" >/number.jsp</result></action>

该标签的其他属性:


没啥好说的,就这样。









1 0