常用STRUTS2标签讲解

阅读更多
一、
写jsp页面的时候,在struts2中,用的是s标记,先引入标记:
<%@ taglib prefix="s" uri="/struts-tags"%>
二、
struts2的标签和1是完全不同的。
struts2的标签分为两大类:非UI标志和UI标志 struts1 将标志库按功能分成HTML、Tiles、Logic和Bean等几部分
下面就介绍strut2的具体标签:
1、UI
UI标志又可以分为表单UI和非表单UI两部分。表单UI部分基本与Struts 1.x相同,都是对HTML表单元素的包装。不过,Struts 2.0加了几个我们经常在项目中用到的控件如:datepicker、doubleselect、timepicker、optiontransferselect等。因为这些标志很多都经常用到,而且参数也很多,要在一篇文章详细说明并非易事。
下面主要是ui标签的一些用法
form:


   

可以上传文件的form。
textfield:
            label="姓名:"
            name="name"
            tooltip="Enter your Name here" />
datepicker:
            tooltip="Select Your Birthday"
            label="生日"
            name="birthday" />
textarea:
            tooltip="Enter your remart"
            label="备注"
            name="remart"
            cols="20"
            rows="3"/>
select:
            tooltip="Choose user_type"
            label=""
            list="#{'free':'免费','vip':'收费'}" value="#{'free':'免费'}" 
           name="bean.user_type"
            emptyOption="true"
            headerKey="None"
            headerValue="None"/>
            tooltip="Choose user_type"
            label=""
            list="#{'free':'免费','vip':'收费'}" value="#{'free':'免费'}" 
           name="bean.user_type"
            emptyOption="true"
            headerKey="None"
            headerValue="None"/>
list="venderList"
listKey="id"
listValue="name"
value="%{profile.companyName}"
name="companyName" cssClass="sel_style_w_180"/> 
挺好用的
checkboxlist:
            tooltip="Choose your Friends"
            label="朋友"
            list="{'Patrick', 'Jason', 'Jay', 'Toby', 'Rene'}"
            name="friends"/>
checkbox:
               tooltip="Confirmed that your are Over 18"
            label="年龄"
            name="legalAge"
            value="18"/>
file:
               tooltip="Upload Your Picture"
            label="Picture"
            name="picture" />
a:
超链接提交
date :



2、非UI
if、elseif和else 描述:
执行基本的条件流转。
参数:
名称必需默认类型描述备注test是Boolean决定标志里内容是否显示的表达式else标志没有这个参数id否Object/String用来标识元素的id。在UI和表单中为HTML的id属性例子:
<%@ page c %>
<%@ taglib prefix="s" uri="/struts-tags" %>


   
        Condition Flow
   
   
       

Condition Flow

           
       
   
  
   
        
   
   
   
   
                   文字
               

               
                   图片
               

                
                 -----
              
  
   

  
   

例1 condition.jsp
iterator 描述:
用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator)。
参数:
名称必需默认类型描述status否String如果设置此参数,一个IteratorStatus的实例将会压入每个遍历的堆栈value否Object/String要遍历的可枚举的(iteratable)数据源,或者将放入新列表(List)的对象id否Object/String用来标识元素的id。在UI和表单中为HTML的id属性例子:
<%@ page c %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ taglib prefix="s" uri="/struts-tags" %>


<%
    List list = new ArrayList();
    list.add("Max");
    list.add("Scott");
    list.add("Jeffry");
    list.add("Joe");
    list.add("Kelvin");
    request.setAttribute("names", list);
%>

   
        Iterator
   
   
       

Names:


       
       

                               
                   
                       
  1. White

  2.                

                   
                       

  3.                

               

           

   



1. Struts2页面开发中常用标签使用说明
1.1.往action里传值的使用方式:

a. userName属性需要在访问的action中提供相应的属性,并有SET/GET方法。
b. 可以不在访问的action中提供相应的属性,用request.getParameter(“userName”);1.2.显示标签 property 用于输出指定值:
当action返回到指定页面是,可以通过该标签显示action中的属性信息。(注 userName必须在action中存在,并有GET方法)。

1.3.往对象中传值 用于从页面往action中的对象内传值:

该标签可以在页面中向action中的实体对象内直接传值。(注:在action中要存在user对象,并有SET/GET方法。)

1.4.判断 用于在页面中判断指定数据
….
….
该标签用于对指定的数据进行判断,但指定的数据必须在action中存在。

1.5.迭代用于将List、Map、ArrayList等集合进行循环遍历



该标签用于将userList集合中的元素进行循环,用过property进行显示集合中的指定元素值。

1.6.URL地址标签,用于生成一个URL地址,可以通过URL标签指定的子元素向URL地址发送请求参数



其中action为请求地址,param子元素为地址后面所带的参数。

1.7.超链接 一般和标签一起使用,用于带多个参数。




">
超链接


1.8.set标签,用于将某个值放入指定的范围内。例如application,session等。

将user值放入request范围内。

2. Struts2页面开发中常用标签使用规范:
1.1.通过
往action中传值,action中要有相应的属性,并提供SET/GET方法。
(在数量少时可以使用request.getParameter(“userName”);)

1.2.在页面显示action传来的数据,使用property标签。需要显示的数据从action中获得。

1.3.往action中的实体对象内传值,使用textfield标签。

1.4.在页面中判断指定值使用标签。判断数据从action中获得。

1.5.在页面中需要循环列表显示的数据使用标签,列表数据从action中获得。

1.6.URL地址和超链接可以使用,在传多值时建议一起使用

radio

我总结是的:struts2's tag :radio.
     比如我们性别的选择,在struts2里它有一个radio的tag 但是再看一下;
     1.它有一个property是list,这可叫我们如何使用呢?                           
     2.在界面首先我们一定要有一个默认的选值,这个如何做到呢?
现在开始解决问题:
     为sex建一个bean类:
package com.lxit.main.system.action;
import java.util.Hashtable;
import java.util.Map;

public class Sexs {
     public Map getSexs() {
         Map sexs= new Hashtable ( 2 );
         sexs.put( "男" , "男" );
         sexs.put( "女" , "女" );//(key,value)下面value="'女'"是这里有key,
         return sexs;
    }
}  
     然后,在界面:


  
  注意:<1>. list="#sexs.sexs"第一个:sexs 它是bean的id 第二个sexs 它是上面bean类里的return 的sexs 这个一定要注意.不然的话.你精心写好的代码会让你失望的,嘿嘿...          
<2>. value="'女'" 这个就是在界面默认选值为'女'; 在界面显示的是:map里面有value,当你选择了以后;在后台拿到的是map里面有key.这里有点不合常理.所以要注意.我发现了以后所以上面的put里有key and value 全是中文"男,女"
name="student.sex"是我action类里面有字段 label="student,sex"是我用了一个*.properties 文件.  
   这样子就可以了.在你正常的工程下就可以工作了.

这样实现比较简单:

你可能感兴趣的:(常用STRUTS2标签讲解)