一、s标签

  在struts-2.3.15.1/docs/WW/docs/tag-reference.html下,就有着struts2所有标签的参考文献,只能看看其中比较常用的标签。因为标签太多了,所以我们之介绍我们

常用的标签。

  

  1.1、if、elseif、else标签

  

    

  结果:

    

 

  1.2、iterator标签

  迭代器标签,用来循环迭代集合或数组中的数据。

  

  

  结果:

    

  迭代list集合:

    

  控制循环次数:

    

  获取迭代时的状态信息:

    

  1.3、set标签

    

  1.4、action标签

    s:action   在jsp页面中调用action

    如果要显示指定动作的结果,需要使用executeResult属性。

    executeResult取值就true和false,默认为false。

    在test.jsp中

  

   结果:

        

  1.5、url和a标签

    url中的属性:

      s:url就是创建一个地址

      value属性:输出的就是value的值。注意:value的取值不再是一个ognl表达式,而是普通的字符串

      action属性:输出的是action2的请求地址。和${pageContext.reqeust.contextPath}/action2.action是一样的。

            但是,它可以随着配置文件中的扩展名的改变而改变。

      var属性:会把action的值存到contextMap中

    

    结果:

      

    

  a标签:

    在test.jsp中

  

  就这些代码和上面是等效的。

  

  

  1.6、<s:property />标签

    用来执行ognl表达式,最为常用的方式是使用它在页面上输出ValueStack或ActionContext中的数据。

二、struts2中#、$、%的使用

  1、#的使用    

  a、取contextMap中key时使用,例如<s:property value="#name" />
  b、OGNL中创建Map对象时使用,例如:<s:radio list="#{'male':'男','female':'女'}" />

  2、$的使用   

  a、在JSP中使用EL表达式时使用,例如${name}
  b、在xml配置文件中,编写OGNL表达式时使用,例如文件下载时,文件名编码。
    struts.xml——>${@java.net.URLEncoder.encode(filename)}

  3、%的使用 

    在struts2中,有些标签的value属性取值就是一个OGNL表达式,例如<s:property value="OGNL Expression" />
    还有一部分标签,value属性的取值就是普通字 符串,例如<s:textfield value="username"/>,如果想把一个普通的字符串强制看成时OGNL,就需要使用%{}把字符串套起来。
    例如<s:textfield value="%{username}"/>。当然在<s:property value="%{OGNL Expression}" />也可以使用,但不会这么用。