资源文件中:
user.login.success={0},登录成功
user.login.fail=登录失败
user.not.found=用户不能找到,用户名称=[{0}]
user.password.error=密码错误
后台:
ActionMessages messages = new ActionMessages();
//创建国际化提示消息文本
ActionMessage message = new ActionMessage("user,login,success" , "java_min"); //构造此对象时需要传入一个参数,此参数就是资源文件中的一个key,换句话说,每一个ActionMessage实例就对应了一个国际化消息
// ActionMessage message = new ActionMessage("user,login,success" , new Object[]{"java_min"}); 与上相同
//添加国际化文本
messages.add("loginSuccess1" , message);
// ActionMessage message1 = new ActionMessage("user.login.fail");
//添加国际化文本
messages.add("loginSuccess2" , message1);
//传递国际化消息文本
this.saveMessages(request , messages);
----------------------------------------------------------------------------------------------------------------------------------------------
//创建国际化错误消息
ActionMessage message = new ActionMessage("user.not.found" , "java_min"); //由于资源文件中要填充值,所以用两参数构造器,如果资源文件中没有需要填充的值,则使用一个参数的构造器。
//添加国际化文本
messages.add("error1" , message);
//传递国际化文本
this.saveErrors(request , messages); //此方法用于添加错误消息,提示消息也可以,不过为了区分提示消息,所以用saveErrors()
注意:提示消息存储在MESSAGE_KEY上,错误消息存储在ERROR_KEY上
前台:
由于后天struts源码中有 request.setAttribute(Globals.MESSAGE_KEY , msssages); 所以前天我们可以使用 request.getAttribute(Globals.MESSAGE_KEY ); 得到想要的信息,但是 struts 给我们提供了标签,所以我们不用这种方式
测试提示消息:
<%taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%>
<%taglib prefix="html" uri="http://struts.apache.org/tags-html %>
显示时使用 <html:messages id=""> 标签,该标签用于读取 ActionMessages 对象的,由于 ActionMessages 对象中可以存放很多个 ActionMessage 对象,所以该标签相当于一个循环标签,由于要循环所以每次应该给出一个变量,将读出的对象应该放到这个变量中去,所以此标签的 id 就是那个变量了。
<html:messages id="msg" message="true"> //message默认值为false即读取提示消息的,即MESSAGE_KEY上的值,如果设置成true即读取错误消息,即ERROR_KEY上的值,此标签会将所有的同种(提示,错误)信息都遍历出来
<bean:write name="msg" />
</html:messages>
页面测试:(输入)
admin
页面显示:
admin,登陆成功
----------------------------------------------------------------------------------------------------------
<html:message id="msg" message="true" property="loginSuccess1"> //property用于过滤,这样就不会讲所有的同种消息显示出来了,由于message="true" 所以这样只会显示 提示消息 loginSuccess1 的信息
<bean:write name="msg" />
</html:message>
测试错误消息:
<%taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%>
<%taglib prefix="html" uri="http://struts.apache.org/tags-html %>
<html:messages id="msg" property="error1"> //message默认就是false 用于显示错误消息的
<bean:write name="msg">
</html:messages>
注意:
<html:messages> 标签既能读取错误消息,又能读取提示消息,<html:error> 标签只能读取错误消息,即只能读取 ERROR_KEY上的值,但是这个标签的修饰由 struts 提供的,在空项目内的样例资源文件中的 errors.header 部分即 standard errors 部分的内容复制到每个资源文件中即可。
<html:errors property="error1" />
注意:
此知识点可以用做手动异常截取,构造一个 ActionMessage 将异常传送出去