zoukankan      html  css  js  c++  java
  • Struts标签<bean:write><logic:iterate></logic:equal>的组合使用小例

    form表单中的一个下拉列表控件的代码如下

                 <select name="taskname" id="taskname" class="select01">
                     <option value="">-任务类型-</option>     
                     <logic:notEmpty name="tasknamelist">
                        <logic:iterate id="task" name="tasknamelist">
                            <logic:equal name="task" value="${taskname}">
                                <option value="<bean:write name="task" />" selected="selected"><bean:write name="task" /></option>
                            </logic:equal>
                            <logic:notEqual name="task" value="${taskname}">
                                <option value="<bean:write name="task" />"><bean:write name="task" /></option>
                            </logic:notEqual>
                         </logic:iterate>
                      </logic:notEmpty>
                  </select> 

    以上这段代码可以实现给下拉列表动态赋值,并且回显的功能,但是标签中的一些属性值设置经常搞混,需要注意。

    1.<logic:notEmpty name="tasknamelist"> 和 <logic:iterate id="task" name="tasknamelist">  通过name取值,这说明在代码中一定有如下的类似代码:(向request等域中赋值)

    request.setAttribute("tasknamelist", tasknamelist);

    2.<logic:equal name="task" value="${taskname}"> Struts标签中不能嵌套,所以如果此处value值是动态的,通过EL表达式来获取,对应的在代码中一定有类似如下代码:(向request等域中赋值)

    request.setAttribute("taskname", tasknamelist);

    在刚开始加载页面的时候此处taskname为“”空,后期用于和tasknamelist中的值做比较,用于回显。

     3.<option value="<bean:write name="task" />" selected="selected"><bean:write name="task" /></option>

    < bean:write name="task">  查阅资料,都表示在代码中一定会有  request.setAttribute("task", task); 这种类似的代码。但是我在项目中发现确实没有这种代码?那么<bean:write name="task">是如何取值的呢?

    以为此处< bean:write name="task">和<logic:iterate id="task" name="tasknamelist"> 一同使用,所以此处的规则是 :标签中的name属性要跟logic:iterator中的id属性对应上.

    (<logic:iterator标签会把name属性值为list的集合里的bean逐一取出来,每取出来一个,就把他存到名为id属性的值的pageContext范围内)

     

  • 相关阅读:
    欧拉函数 || [SDOI2008]仪仗队 || BZOJ 2190 || Luogu P2158
    欧拉函数 || Calculation 2 || HDU 3501
    并查集+时光倒流 || [JSOI2008]星球大战starwar || BZOJ 1015 || Luogu P1197
    并查集+启发式合并+LCA思想 || 冷战 || BZOJ 4668
    并查集+优先队列+启发式合并 || 罗马游戏 || BZOJ 1455 || Luogu p2713
    BZOJ-USACO被虐记
    #1
    BZOJ2441: [中山市选2011]小W的问题
    BZOJ2726: [SDOI2012]任务安排
    BZOJ1492: [NOI2007]货币兑换Cash
  • 原文地址:https://www.cnblogs.com/DreamDrive/p/7599443.html
Copyright © 2011-2022 走看看