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范围内)

 

本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/7599443.html,如需转载请自行联系原作者

相关文章
|
4月前
Sources close to the matter 的含义和使用场合介绍
Sources close to the matter 的含义和使用场合介绍
23 0
|
24天前
|
Java
JSTL jar包版本错误attribute items does not accept any expressions
确保你在 `items` 属性中使用了一个实际的集合或数组变量,而不是表达式,以解决这个问题。
12 0
SAP QM 执行事务代码QP01,系统报错 -Material type FOOD is not defined for task list type Q-
SAP QM 执行事务代码QP01,系统报错 -Material type FOOD is not defined for task list type Q-
SAP QM 执行事务代码QP01,系统报错 -Material type FOOD is not defined for task list type Q-
|
Java Spring
Spring源码(二-2)-lookup-method、replaced-method标签
lookup-method 通常称为获取器注入,spring in action 中对它的描述是,一种特殊的方法注入,它是把一个方法声明为返回某种类型的 bean,而实际要返回的 bean 是在配置文件里面配置的。
536 1
SAP Fiori Elements - smart filter bar study - filter display logic
SAP Fiori Elements - smart filter bar study - filter display logic
119 0
SAP Fiori Elements - smart filter bar study - filter display logic
language dropdown list - filter logic
language dropdown list - filter logic
102 0
language dropdown list - filter logic
component set load logic - why coms_pcat_bob is accessed during product search
component set load logic - why coms_pcat_bob is accessed during product search
112 0
component set load logic - why coms_pcat_bob is accessed during product search
使用代码判断某个note是否已经implemented
使用代码判断某个note是否已经implemented
99 0
使用代码判断某个note是否已经implemented
Action Framework Medium attribute 初始化逻辑
Created by Jerry Wang, last modified on May 05, 2014
111 0
Action Framework Medium attribute 初始化逻辑