struts2 ognl 本帖最后由 xjpshh 于 2010-01-19 14:39:29 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在Action中定义一个属性,必须要有get set方法。这个属性的名字必须要和select的名称一样,这样,在表单提交后,会自动将该select的值放入到Action对应的属性中去。input也是一样,最重要就是Action属性名要和表单元素的属性名要一样就可以了 <s:select theme="simple" name="sendto" list="nameList" emptyOption="true"listKey="loginName" listValue="loginName" headerKey=""headerValue="--请选择收件人--" />nameList在action中要有对应的值和get,set方法,loginName是nameList中放的值,也要有get,set方法 说和没说一个样,没有get set,属性名称不一样,怎么能得到值,我那个菜单是2级的,一个是静态的,一个是动态的,静态的可以得到,动态的得到却是数字。对csdn太失望了。 页面代码:<s:form name="f" action="findshop" method="post"><p><label for="cgy">选择分类:</label><select id="select1" name="cgy" onchange="chang(this.options[this.selectedIndex].text)"><option>请选择分类</option><option>鞋</option><option>手机</option><option>电脑</option><option>服装</option><option>书籍</option></select><label for="name">选择专卖店</label><select id="select2" name="name"></select><s:submit value="搜索专卖店" name="submit1"/></p></s:form>javascript代码:document.f.name.options[i]=new Option(items[i].text,i);第一个是静态的,比如我选中“电脑”这个值,然后第二个就会弹出选择,比如“索尼”“联想”等,然后我提交表单,结果是“电脑”这个值可以得到,另外一个是得到它的数字号码,比如我选中“索尼”,“索尼”如果排在第一个位置我就得到'1'这个数字,这是不是struts2中的一个bug啊!其他地方没有碰到。 <option value="3">服装</option>this.options[this.selectedIndex].text得到 服装 this.options[this.selectedIndex].value得到 3在后台的cgy则直接注入为 3如果是<option>服装</option>则在后台的cgy则直接注入为 服装不知道分析的对不对。。 document.f.name.options[i]=new Option(items[i].text,i); 这断改成document.f.name.options[i]=new Option(items[i].text,items[i].text); myEclipse集成python问题 hibernate many-to-one问题 这个空指针错误怎么办?高手看看! eclipse3.5解压后运行不了,报jdk版本低 在线等 webligoc 连接池的问题 小弟现在没分 jdom1.1 apidocs在官网上怎么下载啊? easyui的datagrid问题急求 XML文件过大如何处理 register如何访问固定位置的注册表文件 java lucene 按字母关键字查询时,会出现一些未匹配的数据 你目前在自学什么技术? QQ界面设计
这个属性的名字必须要和select的名称一样,这样,在表单提交后,会自动将该select的值放入到Action对应的属性中去。input也是一样,最重要就是Action属性名要和表单元素的属性名要一样就可以了
listKey="loginName" listValue="loginName" headerKey=""headerValue="--请选择收件人--" />
nameList在action中要有对应的值和get,set方法,loginName是nameList中放的值,也要有get,set方法
<s:form name="f" action="findshop" method="post">
<p><label for="cgy">选择分类:</label><select id="select1" name="cgy" onchange="chang(this.options[this.selectedIndex].text)">
<option>请选择分类</option>
<option>鞋</option>
<option>手机</option>
<option>电脑</option>
<option>服装</option><
option>书籍</option>
</select><label for="name">选择专卖店</label><select id="select2" name="name"></select>
<s:submit value="搜索专卖店" name="submit1"/>
</p>
</s:form>
javascript代码:
document.f.name.options[i]=new Option(items[i].text,i);
第一个是静态的,比如我选中“电脑”这个值,然后第二个就会弹出选择,比如“索尼”“联想”等,然后我提交表单,结果是“电脑”这个值可以得到,另外一个是得到它的数字号码,比如我选中“索尼”,“索尼”如果排在第一个位置我就得到'1'这个数字,这是不是struts2中的一个bug啊!其他地方没有碰到。
this.options[this.selectedIndex].text
得到 服装
this.options[this.selectedIndex].value
得到 3
在后台的cgy则直接注入为 3
如果是
<option>服装</option>
则在后台的cgy则直接注入为 服装不知道分析的对不对。。