Struts2 不同的欄位如何使用同一個相應訊息和驗證規則
阿新 • • 發佈:2018-12-20
jsp頁面如下
<body> <a href="good.action?request_locale=zh_CN">中文</a> <a href="good.action?request_locale=en_US">英文</a> <s:form action="good.action"> <s:textfield name="goodnum" label="goodsnum"></s:textfield> <s:textfield name="goodprice" label="goodsprice"></s:textfield> <s:submit></s:submit> </s:form> </body>
填好表單之後,點擊發送請求,跳轉到後臺的struts.xml檔案
<action name="good" class="cn.com.app.Goods">
<result>/success.jsp</result>
<result name="input">/demos.jsp</result>
</action>
通過請求的地址,找到對應的Action類
package cn.com.app; import com.opensymphony.xwork2.ActionSupport; public class Goods extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; /*author:命運的信徒 * date:2018/12/18 * arm:相同的驗證規則使用同一條相應訊息 */ private int goodnum; private int goodprice; //1.根據請求找到struts.xml檔案 //2.根據請求的地址找到Action類 //3.第一步,params攔截器賦值 //4.執行到validation攔截器,欄位的驗證 public int getGoodnum() { return goodnum; } public void setGoodnum(int goodnum) { this.goodnum = goodnum; } public int getGoodprice() { return goodprice; } public void setGoodprice(int goodprice) { this.goodprice = goodprice; } }
通過欄位驗證攔截器 找到Action的配置檔案
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> <validators> <!-- 針對goodnum goodprice屬性進行驗證 --> <field name="goodprice"> <!-- -欄位範圍內 --> <field-validator type="int"> <param name="min">20</param> <param name="max">50</param> <message key="error_age"></message> </field-validator> </field> <field name="goodnum"> <!-- -欄位範圍內 --> <field-validator type="int"> <param name="min">10</param> <param name="max">20</param> <message key="error_age"></message> </field-validator> </field> </validators>
錯誤提示訊息國際化顯示,就是雖然顯示的英文,但是在中國地區是不可能還顯示英文的
username=\u7528\u6237\u540D
password=\u5BC6\u7801
submit=\u63D0\u4EA4
time=\u65F6\u95F4\:{0}
times=\u7B2C\u4E8C\u65F6\u95F4\:${dd}
error_age=*${getText(fieldName)} need to be between ${min} and ${max}
goodprice=\u4EF7\u683C
goodnum=\u6570\u91CF
效果如下
點選中文如下
點選英文如下