`
wenson
  • 浏览: 1053556 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

在Struts的html:select标签中显示默认值

阅读更多

最近在写一个系统中,有一个有下拉列表的修改资料功能,对Struts的html:select进行了运用。

其中怎么样使进入修改页面之后,该下拉列表里的数据是该需要修改的数据列的数据字段,也就是使html:select中显示的值默认对应数据库中的值。测试修改了一个下午,总得不出结果,最后还是看了Struts的examples才算是弄出来了,如:
<html:select property="id"> <c:foreach item="rs.rows" var="row"> <html:option value="row.id">         </html:option>    </c:foreach>     </html:select>            <html:select property="c_id"> </html:select>     

  1. <html:select property="id">  //这里一定不能再用vlue属性了,只用一个property就可以了   
  2.         <c:forEach var="row" item="${rs.rows}">      
  3.           <html:option value="row.id">  
  4.              <c:out value="row.name"/>  
  5.           </html:option>      
  6.         </c:forEach>        
  7.           </html:select>         

总结:在使用Struts进行修改功能时,要在修改页面上取的数据库先前的值。只要在form中reset里取得数据库里的值,然后在前台页面里html:form里对应的项设置其property为form中对应的属性值就好了,而不需要再设置value属性了。

分享到:
评论
13 楼 wenson 2007-09-19  
引用
kikumail     20 小时前
但是正常情况下,我们要将从数据库中读出的值作为下拉列表的默认值.
如:下拉列表中有男,女.而数据库中为男,我想在点击修改时,下拉列表能根据数据库中的值自动设置默认值.


你可以在顯示該Form數據之前先給該form的select屬性賦值,比如<html:select property="id"> ,那么你可以把id的值賦上:form.setId("數據庫中撈出來的值").
12 楼 godson_2003 2007-09-18  
<html:select property="Name" name="Form" value="${ojb.sex}" >
<html:options collection="list" property="userName" labelProperty="userName"/>
</html:select>

当userName=admin时,默认selected
11 楼 kikumail 2007-09-18  
但是正常情况下,我们要将从数据库中读出的值作为下拉列表的默认值.
如:下拉列表中有男,女.而数据库中为男,我想在点击修改时,下拉列表能根据数据库中的值自动设置默认值.

10 楼 myyate 2007-09-18  
楼上正解,不需要循环来选择的,需要默认值,直接赋值就是了。
9 楼 godson_2003 2007-09-18  


<html:select property="Name" name="**Form" value="admin" >
<html:options collection="list" property="userName" labelProperty="userName"/>
</html:select>

当userName=admin时,默认selected
8 楼 tvjody 2007-09-18  
<p>还有,比如楼主的代码</p>
<div class='code_title'>代码<span><span><span><span/></span></span></span></div>
<div class='dp-highlighter'>
<div class='bar'/>
<ol class='dp-xml'>
    <li class='alt'><span><span class='tag'>&lt;</span><span class='tag-name'>html:select</span><span> </span><span class='attribute'>property</span><span>=</span><span class='attribute-value'>"id"</span><span class='tag'>&gt;</span><span>  //这里一定不能再用vlue属性了,只用一个property就可以了       </span></span></li>
    <li class=''><span>        </span><span class='tag'>&lt;</span><span class='tag-name'>c:forEach</span><span> </span><span class='attribute'>var</span><span>=</span><span class='attribute-value'>"row"</span><span> </span><span class='attribute'>item</span><span>=</span><span class='attribute-value'>"${rs.rows}"</span><span class='tag'>&gt;</span><span>          </span></li>
    <li class='alt'><span>          </span><span class='tag'>&lt;</span><span class='tag-name'>html:option</span><span> </span><span class='attribute'>value</span><span>=</span><span class='attribute-value'>"row.id"</span><span class='tag'>&gt;</span><span>      </span></li>
    <li class=''><span>             </span><span class='tag'>&lt;</span><span class='tag-name'>c:out</span><span> </span><span class='attribute'>value</span><span>=</span><span class='attribute-value'>"row.name"</span><span class='tag'>/&gt;</span><span>      </span></li>
    <li class='alt'><span>          </span><span class='tag'>&lt;/</span><span class='tag-name'>html:option</span><span class='tag'>&gt;</span><span>          </span></li>
    <li class=''><span>        </span><span class='tag'>&lt;/</span><span class='tag-name'>c:forEach</span><span class='tag'>&gt;</span><span>            </span></li>
    <li class='alt'><span>          </span><span class='tag'>&lt;/</span><span class='tag-name'>html:select</span><span class='tag'>&gt;</span><span>     </span></li>
</ol>
</div>
<p>可以在</p>
<div class='code_title'>代码</div>
<div class='dp-highlighter'>
<div class='bar'/>
<ol class='dp-xml'>
    <li class='alt'><span><span class='tag'>&lt;</span><span class='tag-name'>c:forEach</span><span> </span><span class='attribute'>var</span><span>=</span><span class='attribute-value'>"row"</span><span> </span><span class='attribute'>item</span><span>=</span><span class='attribute-value'>"${rs.rows}"</span><span class='tag'>&gt;</span><span> ……</span><span class='tag'><span class='tag-name'>c:forEach</span><span class='tag'>&gt;</span><span>     </span></span> </span></li>
</ol>
</div>
<p>之间进行判断,像Struts1.X中的</p>
<div class='code_title'>代码<font/></div>
<div class='dp-highlighter'>
<div class='bar'/>
<ol class='dp-xml'>
    <li class='alt'><span><span class='tag'>&lt;</span><span class='tag-name'>logic:equal</span><span> </span><span class='attribute'>name</span><span>=</span><span class='attribute-value'>"by"</span><span> </span><span class='attribute'>value</span><span>=</span><span class='attribute-value'>"desc"</span><span> </span><span class='attribute'>scope</span><span>=</span><span class='attribute-value'>"session"</span><span class='tag'>&gt;</span><span>  </span></span> </li>
</ol>
</div>
<p> </p>
<p><br/>
</p>
<p> </p>
<p> </p>
7 楼 tvjody 2007-09-18  
<p>如果Select的选项固定,可以直接用Selected标签实现默认值(JAVA代码1) </p>
<div class='code_title'>代码<span><span><span/></span></span></div>
<div class='dp-highlighter'>
<div class='bar'/>
<ol class='dp-xml'>
    <li class='alt'><span><span class='tag'>&lt;</span><span class='tag-name'>html:select</span><span> </span><span class='attribute'>property</span><span>=</span><span class='attribute-value'>"id"</span><span class='tag'>&gt;</span><span>       </span></span> </li>
    <li class=''><span>    </span><span class='tag'>&lt;</span><span class='tag-name'>html:option</span><span> </span><span class='attribute'>value</span><span>=</span><span class='attribute-value'>"0" selecded</span><span class='tag'>&gt;</span><span>无</span><span class='tag'><span class='tag-name'>html:option</span><span class='tag'>&gt;</span><span>        </span> </span></li>
    <li class='alt'><span>    </span><span class='tag'>&lt;</span><span class='tag-name'>html:optionsCollection</span><span> </span><span class='attribute'>name</span><span>=</span><span class='attribute-value'>"ids"</span><span> </span><span class='tag'>/&gt;</span><span>         </span> </li>
    <li class=''><span/><span class='tag'><span class='tag-name'>html:select</span><span class='tag'>&gt;</span><span>    </span> </span></li>
</ol>
</div>
<p> </p>
<p>如果是动态的(JAVA代码2),可以在相对应Action的From中设置默认值(JAVA代码3)</p>
<div class='code_title'>java 代码2</div>
<div class='dp-highlighter'>
<div class='bar'/>
<ol class='dp-j'>
    <li class='alt'><span><span class='keyword'>public</span><span> List getOptions()      </span></span> </li>
    <li class=''><span>{      </span> </li>
    <li class='alt'><span>  List ls = </span><span class='keyword'>new</span><span> ArrayList();      </span> </li>
    <li class=''><span> </span><span class='keyword'>for</span><span>(;;)    </span> </li>
    <li class='alt'><span> {      </span> </li>
    <li class=''><span>   ls.add(</span><span class='keyword'>new</span><span> LabelValueBean(key,value);      </span> </li>
    <li class='alt'><span> }      </span> </li>
    <li class=''><span>              </span> </li>
    <li class='alt'><span> }            </span> </li>
    <li class=''><span>}      </span> </li>
</ol>
</div>
<p>java 代码3</p>
<div class='dp-highlighter'>
<div class='bar'/>
<ol class='dp-j'>
    <li class='alt'><span><span class='keyword'>public</span><span> ActionForward update(ActionMapping mapping, ActionForm form,   </span></span> </li>
    <li class=''><span>            HttpServletRequest request, HttpServletResponse response) {   </span> </li>
    <li class='alt'><span/><span class='comment'>//do some thing      </span><span>  </span> </li>
    <li class=''><span>xxxForm f = (xxxForm)form;   </span> </li>
    <li class='alt'><span>f.setOption(value);   </span><span class='comment'>//这里设置下拉选项的默认值 </span><span>  </span> </li>
    <li class=''><span/><span class='keyword'>return</span><span> mapping.findForward(</span><span class='string'>"page"</span><span>);   </span> </li>
    <li class='alt'><span>  </span> </li>
    <li class=''><span>    }  </span> </li>
</ol>
</div>
<p><br/>
如果上面的还不能满足的话,可以试试用JS控制 </p>
<div class='code_title'>js 代码</div>
<div class='dp-highlighter'>
<div class='bar'/>
<ol class='dp-c'>
    <li class='alt'><span><span class='keyword'>function</span><span> Selected(index,valued){   </span></span> </li>
    <li class=''><span>    </span><span class='keyword'>if</span><span>(index!=</span><span class='string'>""</span><span>){   </span> </li>
    <li class='alt'><span>        </span><span class='keyword'>var</span><span> lengths = $(</span><span class='string'>"select"</span><span>).options.length;</span><span class='comment'>//下拉项的长度 </span><span>  </span> </li>
    <li class=''><span>        </span><span class='keyword'>for</span><span>(</span><span class='keyword'>var</span><span> i=0;i </span></li>
    <li class='alt'><span>            </span><span class='keyword'>if</span><span>(valued == index){   </span> </li>
    <li class=''><span>                $(</span><span class='string'>"select"</span><span>).options[i].selected=</span><span class='keyword'>true</span><span>;   </span> </li>
    <li class='alt'><span>            }   </span> </li>
    <li class=''><span>        }   </span> </li>
    <li class='alt'><span>    }   </span> </li>
    <li class=''><span>}  </span> </li>
</ol>
</div>
<p> </p>
6 楼 kikumail 2007-09-18  
如果我要其中一项作为默认值来显示呢
5 楼 wenson 2006-12-07  
真的不错
4 楼 IvanLi 2006-12-06  
optionsCollection 中的类型也不一定必须是LabelValueBean,
在<html:optionsCollection/>标签中可以指定label和name分别是ListItem的属性名字
3 楼 王者之剑 2006-12-06  
还加一点,你可能会碰到要多加一个的情况,那么可以这样。
<html:select property="id"> 
    <html:option value="0">无</html:option>  
    <html:optionsCollection name="ids" />   
</html:select>

即html:option, html:options, html:optionsCollection这几个标标签可以组合。
看看这样写的结果
<html:select property="id"> 
    <html:option value="0">无</html:option>  
    <html:optionsCollection name="ids" />
<html:option value="0">无</html:option>  
    <html:optionsCollection name="ids" />   
</html:select>

2 楼 王者之剑 2006-12-06  
LabelValueBean是struts中的一个类,用来配合html:optionsCollection做显示,这里只展示了一种常用方案,
更多细节请看html:optionsCollection相关文档
1 楼 王者之剑 2006-12-06  
真正的struts的做法

XXAction{
execute()
{
 request.setAttribute("ids", getNameID());
}
private List getNameID()
{
 //load from db
 ...
 //make a LabelValueBean List
 ArrayList ls = new ArrayList();
 for()
 {
   ls.add(new LabelValueBean(name,id);
 }
		
 }		
}

jsp
<html:select property="id">
	<html:optionsCollection name="ids" />
</html:select>

相关推荐

    <html:select>: 选择默认值

    在Web开发中,`&lt;html:select&gt;`标签是一种常用的表单元素,用于创建下拉列表。这个标签属于Struts标签库的一部分,Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架,广泛应用于企业级应用...

    jsp 开发之struts2中s:select标签的使用

    总结来说,`s:select`标签在Struts2中用于构建HTML `&lt;select&gt;`元素,通过`list`属性传递选项数据,`listKey`和`listValue`分别指定选项的键和显示值。`headerKey`和`headerValue`用于创建默认的头部选项,`value`...

    Struts标签- HTML标签

    在Struts中,HTML标签库是一个非常重要的部分,它提供了简化和增强HTML表单处理的能力。这些自定义标签帮助开发者更好地与Struts控制器层交互,减少代码量,并提高代码的可读性和可维护性。 1. **HTML标签库概述** ...

    Struts标签文档

    在这个“Struts标签文档”中,我们将深入探讨Struts框架中的HTML标签,以及它们如何简化Web开发过程。 HTML标签在Struts中起着至关重要的作用,它们是JSP页面与Struts框架交互的主要手段。这些标签扩展了标准的HTML...

    struts2标签教程(中文版)

    Struts2标签是Java Web开发框架Struts2中的一部分,它提供了一种简化JSP页面编写的方式,使得开发者可以通过XML语法来替代繁琐的Java脚本和JSP动作元素。Struts2标签库大大提升了代码的可读性和维护性,使得业务逻辑...

    struts2标签解析

    它支持许多属性,如`name`(对应Action类中的属性)、`value`(默认值)、`label`(显示的标签文本)等。此外,`s:textfield`还支持自定义CSS样式和验证规则。 2. `s:textarea`: 与`s:textfield`类似,但用于创建...

    struts2标签写法

    - `label`:用于显示标签的描述性文字。 - `list` 和 `listKey` / `listValue`:在下拉列表或复选框中绑定数据,`list`是数据源,`listKey`和`listValue`分别对应键和值。 - `theme`:定义标签的样式主题,如 ...

    struts2标签史上最详细的struts2标签介绍

    Struts2是一个强大的Java web应用程序框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。...在实际项目中,结合Struts2的拦截器、结果类型、国际化等功能,可以构建出健壮、灵活的web应用程序。

    struts2相关标签描述

    - **显示标签**:用于展示数据,如`s:textfield`用于输入字段,`s:property`用于显示对象属性值。 - **控制标签**:处理流程控制,如`s:if`进行条件判断,`s:iterator`遍历集合。 - **表单标签**:处理表单元素,...

    Struts标签--本人常用

    Struts标签是Apache Struts框架中的重要组成部分,它提供了一种声明式编程的方式,使得开发者在JSP页面中能够更加方便、简洁地处理业务逻辑和数据展示。这些标签主要用于简化视图层的开发,减少Java代码的使用,提高...

    struts2标签介绍4

    在Struts2中,标签库是其核心特性之一,它提供了一系列预定义的JSP标签,使得开发者可以更加便捷地处理视图层的展示逻辑。本文将深入探讨Struts2标签的使用,以帮助你更好地理解和应用这些标签。 1. **简介** ...

    Struts2.16 标签小节

    Struts2.16的标签库中包含了多个常用的标签,例如`s:textfield`用于创建输入字段,`s:submit`用于提交表单,`s:checkbox`和`s:radio`用于创建复选框和单选按钮,`s:select`用于创建下拉列表,`s:iterator`用于迭代...

    struts2 标签使用帮助

    每个标签都有许多可配置的属性,例如`value`用于指定默认值,`name`用于绑定Action属性,`label`用于显示标签的描述文字,`cssClass`和`cssStyle`用于设置样式等。正确理解和使用这些属性可以实现更灵活的页面设计...

    Struts2标签库详解

    在Struts2框架中,标签库分为非UI标签和UI标签两大类。 1. **非UI标签**: 非UI标签通常用于处理逻辑或数据,不直接与用户界面交互。例如,`&lt;s:property&gt;`标签用于显示或传递对象的属性值,`&lt;s:if&gt;`和`&lt;s:else&gt;`...

    Struts2图书馆管理系统

    在Struts2框架中,`Struts2标签`是其核心组件之一,它们用于构建用户界面,使得开发者能够更加便捷地控制页面渲染和业务逻辑的交互。这些标签通常在JSP页面中使用,替代了传统的Java脚本和JSTL,使代码更易于阅读和...

    struts2标签使用笔记

    在深入探讨Struts2标签库的使用之前,我们先对Struts2框架有一个基本的认识。Struts2是Apache Software Foundation下的一个开源项目,它继承了Struts1的优点,并在此基础上进行了大量的改进,使得Web开发更加高效、...

    struts2标签整理

    `&lt;s:fielderror&gt;` - 字段错误显示标签 用于显示字段级别的验证错误信息。 ```jsp &lt;s:fielderror fieldName="username"/&gt; ``` ##### 19. `&lt;s:file&gt;` - 文件上传标签 用于实现文件上传功能。 ```jsp &lt;s:file name=...

    struts2-tags-API.rar

    例如,`s:textfield`标签的`name`属性用于指定Action中的属性名,`value`属性用于设置默认值,`label`属性用于显示字段的描述。 **4. 标签的事件处理** Struts2的标签还支持各种事件处理,如onChange、onClick等,...

    Struts2标签使用

    本文将详细介绍Struts2中的各种标签及其使用方法。 #### 二、Struts2标签库概述 Struts2标签库是一系列HTML标签的封装,它们被设计用于与Struts2框架集成工作。这些标签能够动态地生成HTML元素,并且支持表达式语言...

    struts2的几种选择标签

    在这里,`myCheckbox`和`myRadio`是表单字段的名称,`label`属性定义了显示的文字,`value`属性为复选框设定了默认值,而`list`属性则用于`&lt;s:radio&gt;`标签,它提供了一个选项列表。 接下来,`&lt;s:select&gt;`标签用于...

Global site tag (gtag.js) - Google Analytics