• struts2框架之标签


    标签

    1. <s:property>
    * default:默认值,例如:<s:property value="name" default="不存在"/>
    * escape:是否转义,默认为true表示转义。<s:property value=""<script>for(; true;)alert('hehe');</script>""/>
    * 特殊字符会被转义:<、>、"、'、&
    * value:指定OGNL表达式

    --------------------------

    2. <s:set>:没什么用!
    * var:指定变量名
    * value:指定变量值,它支持ognl
    * scope:指定变量的域,可选值:page、request、session、application、action(默认值为action)
    * action:它与request域相似,它比request还大一点点,它不只是把变量存放到request中,还会存放到ognl上下文中。

    例如:
    <s:set var="name" value="#parameters.name" scope="action"/> request.setAttribute("name", request.getParameter("name"));
    <s:property value="#request.name"/>
    <s:property value="#name"/>

    ---------------------------

    3. <s:push>:没什么用!
    用来压栈
    例如:
    <s:push value="'hello'">压栈
    <s:property value="top"/>使用
    </s:push>弹栈

    ---------------------------

    4. <s:url>:有用
    输出url,与<c:url>相似。但<s:url>是针对action的url
    <package name="xxx" namespace="/user" extends="struts-default">
    <action name="user_login" class="..."/>
    </package>

    <c:url value="/user/user_login.action"/>
    <s:url namespace="/user" action="user_login"/>

    <s:url namespace="/user" action="user_login>
    <s:param name="name" value="张三" />
    </s:url>

    ---------------------------

    5. <s:a>:非常重要
    生成超链接,针对action的。
    <s:a namespace="/user" action="user_login"/>

    ---------------------------

    6. <s:debug>:用来测试的,查看上下文和值栈用的!
    在页面中生成一个超链接,点击即可查看上下文和值栈的内容!


    ---------------------------

    7. <s:if> <s:ifelse> <s:else>

    ---------------------------

    8. <s:iterator/>

    <%--
    当指定了status属性后,会把一个循环状态对象放到上下文中
    循环状态对象:
    * index:当前元素的下标
    * count: 循环的圈数
    * even:是否为偶数圈数
    * odd: 是否为奇数圈数
    * first:是否为第一圈
    * last:是否为最后一圈
    --%>
    <s:iterator value="{'zhangSan', 'liSi', 'wangWu'}" status="st">
    <s:property/> --
    <s:property value="#st.index"/>,
    <s:property value="#st.count"/>,
    <s:property value="#st.even"/>,
    <s:property value="#st.odd"/>,
    <s:property value="#st.first"/>,
    <s:property value="#st.last"/><br/>
    </s:iterator>
    <%--
    zhangSan -- 0,1,false,true,true,false
    liSi -- 1,2,true,false,false,false
    wangWu -- 2,3,false,true,false,true
    --%>

    ============================================
    ============================================
    ============================================

    表单标签
    1. 好处:
    * 简化代码
    * 主题(这也可以说是缺点)
    * 自动回显(这才我们真正使用它的原因):其实就是把ValueStack内的数据显示到表单中。

    1. <s:form>
    * action:与<action name>相同
    * namespace:与<package namespace>相同
    * theme:simple

    <s:form>的method默认值为post,这个无需操心!

    ---------------------------------

    2. <s:textfield> 简单文本框,等同与<input type="text">
    3. <s:password> 密码框,等同与<input type="password">
    4. <s:textarea> 文本域(多行多列),等同与<textarea>
    5. <s:submit> 提交按钮,等同与<input type="submit">

    ---------------------------------

    选择性标签

    1. <s:radio>
    男<input type="radio" name="xxx" value="xxx"/>
    女<input type="radio" name="xxx" value="xxx"/>
    <s:radio>生成一堆<input type="radio"/>
    例如:<s:radion list="{'男', '女'}" name="gender"/>,它生成两个<input type="radion">,其中显示值和实际值是相同的。

    如果希望显示值和实际值不同,那么需要在list属性中给出Map,而不是List
    例如:<s:radio list="#{'男':'male', '女':'female'}" name="gedner"/>
    显示值是male和female
    实际值是“男”和“女”
    2. <s:checkboxlist>
    生成一大堆的<input type="checkbox">
    <s:checkboxlist list="{'上网', '游泳', '看书'}"/>

    3. <s:select>
    生成<select>和<option>的
    * headerKey:它是空项的值
    * headerValue:它是空项的显示。
    <s:select headerKey="" headerValue="==请选择==" list="{'小学', '没上过小学', '什么是小学'}" name="education" />

  • 相关阅读:
    Spock
    Spock
    Spock
    Spock
    Spock
    Spock
    Python3 与 Python2 的不同
    python 文件处理
    Django 数据迁移
    Python 特殊方法
  • 原文地址:https://www.cnblogs.com/xyhero/p/9348797.html
Copyright © 2020-2023  润新知