Struts2 不同的字段如何使用同一个相应消息和验证规则

版权声明:博客知识产权来源命运的信徒,切勿侵权 https://blog.csdn.net/qq_37591637/article/details/85060603

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

效果如下

点击中文如下

点击英文如下

 

猜你喜欢

转载自blog.csdn.net/qq_37591637/article/details/85060603