6struts HTML标签库

Struts HTML标签可以和标准的HTML元素完成相同的功能,在Struts应用中提倡使用Struts HTML标签,这是因为这些标签可以和Struts框架的其他组件紧密联系在一起。

标签
标签用于在网页的开头生成HTML的元素。

标签
标签用于生成HTML元素。的属性:
forward,指定全局转发链接(即:中定义的)
href,指定完整的URL链接
page,指定相对于当前网页的URL

标签,用于在html页中嵌入图片。它的page属性相当于的src。

表单标签
,生成HTML

元素
,生成 HTML元素
,生成HTML元素
,生成HTML元素
,生成表单上的取消按钮
,生成HTML 元素
,生成HTML元素
,生成表单上的复选框元素
,生成HTML元素
,生成HTML元素

************************
标签的用法
可以放在网页的任何地方。既可以位于html表单内,也可以位于html表单外。标签输出的错误消息和它在网页作用的位置无关。标签的属性:
name,指定ActionMessages对象存放在request或session范围内的属性key,默认为Global.ERROR_KEY

property,指定消息属性,如果此项没有设置,将显示ActionMessage对象中所有的ActionMessage

bundle属性:指定消息资源文件。若忽略该属性则从默认的消息资源文件中获取输出的消息内容

ActionMessages的add(String porperty,ActionMessage message)方法的poperty参数用于设置消息的属性,同一消息属性可以对应多条消息。如:
errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("errors.global.errors1"));
errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("errors.global.errors2"));
标签的propertity属性和以上ActionMessages的add()方法的property属性匹配,标签能够输出ActionMessages集合中和指定消息属性对应的所有消息。ActionMessages.GLOBAL_MESSAGE是一个常量,它的值为org.apache.struts.action.GLOBAL_MESSAGE,它代表全局消息,在网页中显示该全局消息的代码:


ActionMessage可以表示数据验证错误,它被保存在ActionMessages(或其子类ActionErrors)集合对象中,(ActionMessages对象可以包含多个ActionMessage对象)ActionMessages对象被保存在request范围内,struts的试图组件可以通过标签来访问它。
ActionMessage(String key)
该方法

接受一个字符串,字符串是在资源文件种配置的key值,必须在配置文件中进行相关配置.

ActionMessage(String key,Object value0,Object value1,Object value2,Object value3)
第一个参数同样是资源文件中配置的key值,同样必须在配置文件中进行相关配置.后面的参数为资源文件中key所对应的复合消息中需要的参数.

ActionMessage(String key,Object[] values)
这种方法第一个参数同上,第二个参数接受一个Object数组,其中保存key在资源文件中对应复合消息需要的参数

Action基类中定义了saveErrors()方法,它负责把ActionMessages对象保存到request范围内,最后返回ActionForward对象,struts框架会根据ActionForward对象博阿含的转发信息请求转发到恰当视图组件,试图组件通过标签把request范围内的ActionMessages对象中包含的错误消息显示出来,提示修改错误。
例如我们在Action子类的execute()方法中:
ActionMessages errors=new ActionMessages();
String badUserName="Monster";
errors.add("userName",new ActionMessage("hello123",badUserName));
saveErrors(request,errors);
return (new ActionForward(mapping.getInput()));

saveErrors()接收ActionMessages而不是ActionErrors;同时将其保存在request中并用一个由org.apache.struts.Globals.ERROR_KEY指定的常量"org.apache.struts.Globals.ERROR_KEY"标识这个ActionMessages,便于查找

saveMessages()和saveErrors()一样:
ActionMessages mess=new ActionMessages();
mess.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("record.inserted"));
saveMessages(request,actionMessages);

标签能够格式化显示ActionMessage包含的消息文本。而这些消息文本预先存放在Resource Bundle中。 如,在.properties文件中包含如下错误消息
error.from=

  • this is a global error

  • 标签能偶识别错误消息文本中的html元素如

  • 将它们按html格式输出。

    *****************
    标签和标签有些相似,也能够在网页上输出消息,不过两者的使用方法有些差别。标签有以下一些重要属性:
    name:指定actionMessages对象存放在request或session范围内的属性key.标签处理类将根据这一属性key来检索request或session范围的ActionMessages对象。

    message属性,指定消息的来源。如果为true,则从request或session范围内检索出属性key为Globals.MESSAGE_KEY的ActionMessages对象,此时name属性无效。如果为false,则根据name属性来检索ActionMesages对性,如果此时没有设置name属性,将采用默认值为Globals.ERROR_KEY。message属性的默认值为false。

    id属性,用来命名从消息集合中检索出每个ActionMessage对象。它和标签的处理类每次从小学集合中取出一个ActionMess

    age对象,就把它命名为message,标签接着就把这个名为message的ActionMessage对象的消息输出到网页上:



    344