struts1标签使用
来源:互联网 发布:保利 知乎 编辑:程序博客网 时间:2024/05/17 06:14
1 使用struts1 标签使用时需要一个国际化的资源包 i18n的MassagesResources.properties的文件,同时在struts-config中配置相关的路径。MassagesResources.properties内部可以使通过相应的名称设置页面提示的CSS样式(可以参考struts1开发文档中的例子)。
<html:erreors property="name" >在erreors中找到name对应的提示信息。
<html:messages id="message" message="true"><p>${message} </p></html:messages>message属性是指在reques 或者session作用域中取对应ID的值,此标签也可以取到error中的信息,区别在于指定了message属性为true时去的就是<p>${message} </p>信息。
logic:messagesPresent property="property1"message="true"> Message:property1存在</logic:messagesPresent>
我们知道,在Action类中我们可以通过将一个ActionErrors或ActionMessages对象添加进request scope
saveMessages(request, msgs);
用Globals.MESSAGE_KEY(值为”org.apache.struts.action.MESSAGE”)作为键。
saveErrors(request, msgs);
用Globals.ERROR_KEY(值为”org.apache.struts.action.ERROR”)作为键。
<logic:messagesPresent/>标签就是用来检测在request scope内,有没有以名为Globals.MESSAGE_KEY或Globals.ERROR_KEY的Errors/Messages对象。
该标签的message属性,指定检测在那里进行。(Globals.ERROR_KEY
缺省 或 Globals.MESSAGE_KEY 设为true
)
如:<logic:messagesPresentproperty="property1">
就是检测在request scope中有没有一个名为:”org.apache.struts.action.ERROR”也就是Globals.ERROR_KEY的值,的对象,而在该对象中,有没有一个名为”property1”的属性。
如:<logic:messagesPresentproperty="property1"message="true">
就是检测在request scope中有没有一个名为:”org.apache.struts.action.Message”也就是Globals.MESSAGE_KEY的值,的对象,而在该对象中,有没有一个名为”property1”的属性。
其实我们在后台通过saveErrors(request, msgs); 就相当于
request.setAttribute(Globals.ERROR_KEY, msgs);
之所以用saveErrors方法,就是简化操作,让我们不用为这个对象命名,使用default的名字,从而前台logic:messagesPresent标签中也不用指定name属性,因为在属性message不是true的情况下,该标签默认认为,我们就是来检测名为Globals.ERROR_KEY的对象。
所以,如果我们在后台request.setAttribute("MyErrors", msgs);
而前台<logic:messagesPresentname="MyErrors"property="property1">
指定属性name,是一样可以进行判断的。
而当message属性为true的时候,标签就会忽略name属性,只检测名为Globals.MESSAGE_KEY的对象。这种情况我们就只能以这个default的名字来命名存储在request scope中的对象。
可为什么我们一定要用struts默认的名字(Globals.ERROR_KEY/Globals.MESSAGE_KEY)呢?因为我们只检测是否存在是不够的。对于messages或者errors我们更重要的是来显示它的信息(丛rescources里面获取)一般用<html:messages/>或者<html:errors/>。而这两个标签,默认都是得到名为Globals.ERROR_KEY或Globals.MESSAGE_KEY的对象。当然我们通过指定name属性,也可以得到我们自定义的名字。但问题是它将无法从我们自定义名字的对象中获得属性,也就是说你不能指定property,因为你自定义的名字无法映射到它所包含的对象中的属性(也就是没有getter()方法)。而如果用default的命名方式(Globals.ERROR_KEY或Globals.MESSAGE_KEY),struts就会建立这种对象与属性之间的映射。
与这个标签相反的是 <logic:messagesNotPresent />
- struts1标签使用
- struts1使用select标签
- struts1 logic标签的使用
- struts1 logic标签的使用
- Struts1 bean标签的使用
- struts1 logic标签的使用
- struts1.x 标签使用总结
- struts1 logic标签的使用
- struts1标签Logic使用举例
- 传智播客 struts1.x 常用标签的使用
- struts1.x html:link 标签使用
- struts1.x bean:write 标签的使用
- 使用struts1标签格式化时间字段
- struts1 logic:iterate bean:write标签使用
- struts1 logic:iterate bean:write标签使用
- struts1.x bean:write 标签的使用
- SSH:Struts1框架(标签的使用)
- Struts1标签
- DP实例之01背包问题C语言实现
- Android Studio开发界面自定义,更有利于开发
- Android 录音数据传输
- Python 使用pdb进行简单调试
- 面试总结之-查找算法分析
- struts1标签使用
- Android 4.0 Launcher2源码分析——导入eclipse进行调试
- 文档、视图和框架
- 关于数据校验
- 在Android上实现SSL握手(客户端需要密钥和证书),实现服务
- 很有用的东西,可以修复MBR引导区,在windows命令行下mbrfix /drives 0 fixmbr就可以了
- Java进阶---对象与内存控制(三)(磨灭你的自信)
- 开发简写 对应(vc、mfc)
- iOS