`

Struts标签-Html(转载)

阅读更多
Struts Html标签和标准的HTML标签功能相同,这里提倡在Struts应用中使用Struts标签,这是因为这些标签可以和Struts框架的其他组件紧密的联系起来,如比标签用来定义HTML表单,Struts能够把这个表单中的数据自动映射到对应的ActionForm中.下面对具体的标签进行深度研究.首先研讨一些基本的东东,我个人认为不是很常用的,生成基本HTML元素的标签,这些标签和HTML元素对应,主要包括:

1)生成元素,这个标签有一个lang属性,用于显示用户使用的语言,设置卫true的时候,标签将先根据存储当前HttpSession中的Locale对象来输出网页数用的语言,如果没有HttpSession或者里面没有Locale对象,就根据HTTP请求头的属性来输出语言,如果HTTP请求头中没有,就根据默认的Locale来输出语言.

2)生成元素,这个用于生成当前网页的绝对URL路径.如果使用了这个标签,当该网页引用同一个应用的其他网页的时候,只需要给出相对于当前网页的相对URL路径即可.

3)生成Anchor元素,这个是超连接标签,感觉有一些好处可言,比如允许在RUL中以多种方法包含请求参数.当用户浏览器关闭Cookie的时候,会自动重写URL,把SessionID作为请求参数包含在URL中,用于跟踪用户的Session状态.它的主要属性有三种,分别是forward指定全局转发连接.href指定完整的URL连接.page指定相对于当前网页的RUL.

4)生成用户请求URI,用于输出超连接中的URL部分,但它并不生成HTML

元素.URI指的是URL中的协议,主机和端口以后的内容.

5)生成HTML元素,用于在HTML页中嵌入图片.page属性指定当前的URI.

根据我个人的一些看法,感觉Struts确实很好,但是在好的东西也有一些不实用的地方,JAVA也是如此,以上方法我比较推荐标签,感觉这个标签有十分不错的功效,下面阐述一下具体的使用方法:

1)     创建全局转发连接:首先在Struts配置文件中配置


  


在JSP页面中引用:index

2)     创建完整URL的连接,也就是说可以连接到其他的站点

Action

3)     从一个网页连接到同一个应用的另外一个网页

Action

4)     在URL或者RUI中包含请求参数的方法

Action

5)     在URL或者URI中包含单个请求变量的方法


pagemProperty>Action

paramId属性指定请求参数名,paramName属性指定变量名称,paramProperty指定变量卫JavaBean的属性.

研讨完了StrutsHtml标签库的基本标签,下面开始研究一个重要的东东,Struts的表单标签以及它的子标签,单选按钮,复选框,下拉列表等等,下面是详细介绍:

1)表单标签的action属性来指定当用户提交表单后,处理用户请求的组件,就是说在form里action属性比如设置了一个in.do的,那么在配置文件中action元素的path属性如果是/in,这就说明是这个action来接收form提交过来的数据.这个感觉挺简单,此外还需要知道name是设置表单名字,method是来设置请求方法,比如Get或Post.

2)文本标签的property属性指定字段的名字,它和ActionForm中的一个属性匹配,这个属于表单标签的一个子标签,可以把用户填写的值提交到具体的ActionForm中

3)标签在表单中生成取消按钮,当用户按下取消按钮的时候,产生一个取消事件,这个时间由Action来捕获,至于如何处理在Action类中的execute()方法编程实现,主要用途是在用户按了提交按钮,请求没发送过去又不想提交的时候,起到一个反悔作用.

4)标签用来生成复位按钮,类似以上的取消按钮这些实现复位,取代了HTML代码.

5)标签生成提交按钮.使用方法和取消,复位一样都是这样写代码的:

提交.

6)标签在表单上生成隐藏字段,用于在表单上存放不希望让用户看到或者不允许修改的信息,它的属性类似文本标签,property和ActionForm中的具体属性对应.如果想要在表单想显示某个值,而且不希望用户修改,可以用这个方法.

7)标签在表单上生成标准的HTML检查框,比如ActionForm中的属性是boolean类型只能有2个值,就可以在表单中使用这个标签来表示.主要通过property属性来设置对应的ActionForm属性,还有一个value属性,用来设置用户选中检查框的值,默认值是true,就是说当用value=false的时候如果用户没选择这个检查框,就把ActionForm的属性设置卫true,为了检查框能够正常工作,必须在ActionForm的reset()方法中对其复位,在value属性为true的时候,必须在reset()方法中把对应的属性设置为false.

8)标签和差不多,区别就在于它可以生成复选框.它的性能比更加灵活,可以动态的决定被选中复选框的数目,只要property属性相同,而value属性不一样,就可以和ActionBean的同一个数组对应.此外checkbox只能和blooean类型的属性对应,而multibox则没有限制.

9)标签表示单选按钮,多个标签可以组合使用.

10)标签生成下拉列表或多选列表,重要的属性是size属性指定每次网页上显示的可选的项目数量.multiple属性指定是否支持多项选择,如果设置为true表示多选列表,默认为false.property属性于ActionForm中的某个属性对应,这个属性用来存储用户在列表上选中的值.在单选的情况下,ActionForm的对应属性定义为简单类型,不能是数组.在多选的情况下类型是数组.

以上是对StrutsHtml标签库的Form系列标签以及子标签的简单阐述,这些标签不一定都常用,所以了解即可,能掌握常用的几个标签就OK了.下面研究一下文件上传,是指通过用户浏览把用户本地的文件传到Web服务器标签提供了从Html表单中上传文件的功能.这个标签也是Form标签的子标签所以必须嵌套在中,而且的method属性必须设置为Post.enctype编码属性必须设置为multipart/form-data.而且它的property属性必须设置和ActionForm中的Flie类型的属性对应.如果property=”file”则ActionForm中必须要设置private File file;属性,而且提供相应的get/set方法.然后通过Action来完成接收上传文件的功能,首先创建一个读取用户上传文件的InputStream流对象,然后创建一个把上传数据写到目标文件中的OutputStream对象,接下来通过一个驯化把数据从源文件写到目标文件中,上传就实现了.

标签用于输出错误消息,在request和session范围寻找ActionMessages或者其子类ActionErrors集合对象.在从ActionMessages集合对象中读取ActionMessage对象,把ActionMessage对象包含的错误消息文本显示在网页上.至于具体的错误文本消息存放在ResourceBundle中,而且标签能识别错误文本中的HTML元素,例如等等.标签可以存放在网页的任何地方,也可以在表单内.因为它输出错误和它在网页的位置无关.它的具体属性是.1)name:指定ActionMessages对象的属性key,标签处理类根据这个key来家查request或session范围的ActionMessages集合对象.2)property:指定消息属性,如果不设置会显示ActionMessages集合对象中所有的消息对象ActionMessage.3)bundle:指定ResourceBundle如果这个没设置,将从应用中默认的ResourceBundle中获取消息.
    标签和标签有些类似,也能够在网页中输出消息,具体的属性是:1)name:指定ActionMessages对象的属性key,标签处理根据这个key来检索request或者session范围内的ActionMessages对象.2)message:指定消息的来源,如果是true则从request或者session范围内检索出属性key为Globals.MESSAGE_KEY的具体的ActionMessages对象.3)id:用来命名从消息集合中检索出每个ActionMessages对象,它和标签的name属性匹配.
    Struts的标签库固然很好,但是有些是需要用的,有些也是不用也罢的,所以可以根据实际情况进行研究,不过感觉还是都了解一下的好,不一定都要会用,但是起码都能看懂就OK了呵呵^_^ (网友们的支持,是我继续写技术文章的动力!)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics