最近自己搭建框架学习Struts2,(在已经搭建好的框架上)运行:使用 validate validate validate 方法验证数据实例是控制台总是出现如下警告信息:
2012-9-17 14:33:27 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: The first TextProvider in the ValueStack (com.mytest.action.ValidateAction) could not locate the message resource with key 'msg.hello'
2012-9-17 14:33:27 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: The default value expression 'msg.hello' was evaluated and did not match a property. The literal value 'msg.hello' will be used.
实例信息如下:
xml代码----struts.xml
<package name="demo4" namespace="/" extends="struts-default">
<action name="validate" class="com.mytest.action.ValidateAction">
<result name="success">/page/validate/validate.jsp</result>
<result name="input">/page/validate/validate.jsp</result>
</action>
</package>
action代码----ValidateAction.java
package com.mytest.action;
import com.opensymphony.xwork2.ActionSupport; //Struts2.x 的动作类需要从 com.opensymphony.xwork2.ActionSupport 类继承。
import javax.servlet.http.*;
import org.apache.struts2.interceptor.*;
public class ValidateAction extends ActionSupport{
private String msg;
public String execute(){
System.out.println(SUCCESS);
return SUCCESS;
}
public void validate(){
if(!msg.equalsIgnoreCase("hello")){
System.out.println(INPUT);
this.addFieldError("msg.hello", " 必须输入 hello!");
this.addActionError(" 处理动作失败 !");
}else{
this.addActionMessage(" 提交成功 ");
}
}
public String getMsg(){
return msg;
}
public void setMsg(String msg){
this.msg = msg;
}
}
jsp页面----validate.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>验证数据(Insert title here)</title>
</head>
<body>
<s:actionerror/>
<s:actionmessage/>
<s:form action="validate" theme="simple" namespace="/">
输入内容: <s:textfield name="msg"/>
<s:fielderror key="msg.hello" />
<br/>
<s:submit/>
</s:form>
</body>
</html>
解决警告信息的方法:
1.在与ValidateAction.java同目录的包下面建立资源文件ValidateAction.properties
2.在ValidateAction.properties文件中写入如下内容:
msg.hello=nihao 注意这里等号左边的要和jsp中<s:fielderror key="msg.hello" />中的key相同一致
3.重新发布项目,启动tomcat,访问页面,OK警告消失。